query1.Close;
query1.SQL.Clear;
query1.SQL.Add('update "bakdxcome.dbf" bakdxcome set bakdxcome.YYSBZ=''AAAA''+bakdxcome.YYSBZ where length(bakdxcome.SKHF)=5');
query1.ExecSQL;结果在:length(bakdxcome.skhf)=5 处报错!为什么?
query1.SQL.Clear;
query1.SQL.Add('update "bakdxcome.dbf" bakdxcome set bakdxcome.YYSBZ=''AAAA''+bakdxcome.YYSBZ where length(bakdxcome.SKHF)=5');
query1.ExecSQL;结果在:length(bakdxcome.skhf)=5 处报错!为什么?
query1.SQL.Add('update "bakdxcome.dbf" bakdxcome set bakdxcome.YYSBZ=:AAAA +bakdxcome.YYSBZ where length(bakdxcome.SKHF)=5');query1.parambyname('aaaa').asinteger:=bb;//bb is a integer value
如果你用的是SQL Server,那么我说的以下是正确的,如果用的是Paradox数据库,那么它没有测试字符串长度的函数
SQL Server的测试字符串长度的函数是Len(),所以你的语句应该改为
query1.Close;
query1.SQL.Clear;
query1.SQL.Add('update "bakdxcome.dbf" bakdxcome set bakdxcome.YYSBZ = ''AAAA''+ bakdxcome.YYSBZ where length (bakdxcome.SKHF)=5');
query1.ExecSQL;
SQL里的字符连接错了。
1、Length是否是你用的数据库的SQL函数?如果你是VFP格式的DBF数据库那么应该是LEN
2、SQL语法实在太糟糕query1.SQL.Add('update "bakdxcome.dbf" bakdxcome set bakdxcome.YYSBZ='+QuotedStr('AAAA')+'+bakdxcome.YYSBZ where length(bakdxcome.SKHF)=5');
你的语句是在SQL里执行的不可能在用DELPHI中的函数,
它不识别呀!!
建议你在DELPHI中直接转化过来!!!
函数: Len length len length