Myquery.SQL.Add('insert into #lsrkm values(''+lshh+'','''+lsrbh+''','''+lsbh+''',''+lssl+'',''+lszk+'')');
我创建表时用的是:
create table #lsrkm(Hh int,Rbh char(12),Bh char(5),sl int,zk int)
能正常执行。
但运行到最上面那条语句时,被提示"将varchar值'+lszk+'转换为数据类型为int的列时发生语法错误"
请问为什么?
变量类型如下
lsbh:string;
lsrbh:string;
lshh:integer;
lssl:integer;
lszk:integer;
我创建表时用的是:
create table #lsrkm(Hh int,Rbh char(12),Bh char(5),sl int,zk int)
能正常执行。
但运行到最上面那条语句时,被提示"将varchar值'+lszk+'转换为数据类型为int的列时发生语法错误"
请问为什么?
变量类型如下
lsbh:string;
lsrbh:string;
lshh:integer;
lssl:integer;
lszk:integer;
adoquery.sql.add('insert into #lsrkm values(:lshh,:lsrbh,:lsrbh,:lssl,:lszk)')
adoquery1.Parameters.ParamByName('lshh').value :=lshh;
adoquery1.Parameters.ParamByName('lsrbh').value :=lsrbh;
adoquery1.Parameters.ParamByName('lsrbh').value :=lsrbh;
adoquery1.Parameters.ParamByName('lssl').value :=lssl;
adoquery1.Parameters.ParamByName('lszk').value :=lszk;
try
excesql;
except
end;
Myquery.SQL.Add('insert into #lsrkm values(''+lshh+'','''+lsrbh+''','''+inttostr(lsbh)+''',''+inttostr(lssl)+'',''+inttostr(lszk)+'')');
两个单引号并在一起肯定是错
综合一下
Myquery.SQL.Add('insert into #lsrkm values('+inttostr(lshh)+','''+lsrbh+''','''+lsbh+''','+inttostr(lssl)+','+inttostr(lszk)+')');