高手们,帮帮看这段 SQL 语句代码,看错在哪里? 在线等待....(20分)

  • 主题发起人 awind616
  • 开始时间
A

awind616

Unregistered / Unconfirmed
GUEST, unregistred user!
语句1:
s:='0005';
ADOQuery1.Close;
Str:='insert into OperatorRight select ' + s + ',ModelID,ModelName,' + '''0''' + ' from ModelInfo';
ADOQuery1.SQL.Add(Str);
ADOQuery1.ExecSQL;
ADOQuery1.Close;
语句2:
ADOQuery1.Close;
Str:='insert into OperatorRight select ' + '''0005''' + ',ModelID,ModelName,' + '''0''' + ' from ModelInfo';
ADOQuery1.SQL.Add(Str);
ADOQuery1.ExecSQL;
ADOQuery1.Close
我的目的是想插入字符串'0005',以上两段代码都可以执行,但得到的结果却不同,语句2中的执行结果能达到目的。语句1中的执行结果0005变成了5;
我的目的是想插入某一字符串常量,该常量的值来源于某一变量。也就说用类似于语句1的方法实现语句2的功能,因为 s 的值是动态生成的。应该怎样实现。
 
s:='0005';
ADOQuery1.Close;
Str:='insert into OperatorRight select ''' + s + ''',ModelID,ModelName,' + '''0''' + ' from ModelInfo';
ADOQuery1.SQL.Add(Str);
ADOQuery1.ExecSQL;
ADOQuery1.Close;
 
谢谢shijunwu兄弟,
功夫不负有心人,我自己试了一下,也解决了。我的写法如下:
Str:='insert into OperatorRight select ' + '''' + s + '''' + ',ModelID,ModelName,' + '''0''' + ' from ModelInfo';
不过shijunwu兄弟兄弟的写法更加简练。
谢谢了。
 
顶部