当前位置:编程学习 > Delphi >>

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安装步骤(求序列号)?

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,