我用delphi编程,用sql语句处理access表中一个字段,对其值进行整理,用了三个iif语句,就报错,如果一个或者两两组合都可以正确运行,请问这是为什么?那句sql语句是 execute('UPDATE jzpz set pzrq=(iif(cdbl(left(trim(pzrq),2))<10," "+cstr(cdbl(left(trim(pzrq),2))),cstr(cdbl(left(trim(pzrq),2)))))+
iif(cdbl(mid(pzrq,3,2))<10," "+cstr(cdbl(mid(pzrq,3,2))),cstr(cdbl(mid(pzrq,3,2))))+
(iif(len(trim(pzrq))<6," "+right(trim(pzrq),1),right(trim(pzrq),2)))');
还有就是,这个语句在access中是完全能够通过的,为什么在delphi中就通不过呢
iif(cdbl(mid(pzrq,3,2))<10," "+cstr(cdbl(mid(pzrq,3,2))),cstr(cdbl(mid(pzrq,3,2))))+
(iif(len(trim(pzrq))<6," "+right(trim(pzrq),1),right(trim(pzrq),2)))');
还有就是,这个语句在access中是完全能够通过的,为什么在delphi中就通不过呢
sql6:='UPDATE jzpz set pzrq=iif(cdbl(left(trim(pzrq),2))<10," "+cstr(cdbl(left(trim(pzrq),2))),'+
'cstr(cdbl(left(trim(pzrq),2))))+iif(cdbl(mid(pzrq,3,2))<10," "+cstr(cdbl(mid(pzrq,3,2))),'+
'cstr(cdbl(mid(pzrq,3,2))))+(iif(len(trim(pzrq))<6," "+right(trim(pzrq),1),right(trim(pzrq),2)))';
execute(SQL6);
问题的关键就是换行,解决每行字符号不超过255就可以了,谢谢大家哈!来源: http://www.programbbs.com/bbs/view12-29186-1.htm