Delphi中对数据库修改的问题。
qry1.SQL.Text:='Update usrlastlzk SET vLzk=1 where substring(vLzk,charindex('-',vLzk)+1,len(vLzk))>500';
大家帮忙看看,我这句哪里错了!Delphi程序一运行就卡在这里,出错!
追问:大哥,帮忙改改这个行不!对于Delphi,我实在不怎么懂!
qry1.SQL.Text:='Update usrlastlzk SET vLzk=substring(vLzk,1,charindex(' + quotedstr('-') + ',vLzk)-1) where substring(vLzk,charindex(' + quotedstr('-') + ',vLzk)+1,len(vLzk))>80';
qry1.ExecSQL;
答案:又是一个被单引号搞死的人。
用quotedstr对付需要两个单引号的地方。
qry1.SQL.Text:='Update usrlastlzk SET vLzk=1 where substring(vLzk,charindex(' + quotedstr('-') + ',vLzk)+1,len(vLzk))>500';
本机没平台试,如果你这句在sql里正常的话,改成上面的这句就能正常。不过个人看上去你这句是错的。substring(....)截取的字符串都没len(...),哪来>500?
建议加个len()改成这样吧:
qry1.SQL.Text:='Update usrlastlzk SET vLzk=1 where len(substring(vLzk,charindex(' + quotedstr('-') + ',vLzk)+1,len(vLzk)))>500';
当然一切以事实为准。
....vlzk=1 这个vlzk是不是数字型的?不是的话应该改为 vlzk='1',substring是截取字符串的,你是数字型的话应该会出错。
substring的返回值加1是什么意思?
上一个:delphi提示Undeclared identifier:'MainFirmOnTaskbar'
下一个:Delphi7安装步骤(求序列号)?