主题:请教一个问题,急!!在线等,谢谢!
Terryh
[专家分:30] 发布于 2006-04-07 13:07:00
var i:integer;
i:=strtoint(Edit1.Text);//Edit1.Text 非空。
Data.ADOQueryList.SQL.Add('select * form 库存表 where 货物ID=i');
系统老是提示我,i没有初始值,不知道怎么回事,希望大家帮个忙,解答一下,谢了!
回复列表 (共5个回复)
沙发
cilix [专家分:1030] 发布于 2006-04-07 13:09:00
Data.ADOQueryList.SQL.Add('select * form 库存表 where 货物ID='+inttostr(i));
板凳
Terryh [专家分:30] 发布于 2006-04-07 14:56:00
多谢楼上的,能不能再解释一下为什么要这样写?非常感谢!
3 楼
Terryh [专家分:30] 发布于 2006-04-07 14:57:00
我明白了,谢谢了!
4 楼
cilix [专家分:1030] 发布于 2006-04-07 15:02:00
因为你写的'.... =i'是一个完整的字符串,里面的i不是变量体,所以只有经过字符串运算了,其实那句也可以写成:
Data.ADOQueryList.SQL.Add('select * form 库存表 where 货物ID=:i');
data.ADOQueryList.Params['i'].value = i;
但写得风格最好最简单的是:
data.adoquerylist.sql.add(format('select * form 库存表 where 货物ID=%d', [i]));
呵呵,这是偶常用的格式
5 楼
Terryh [专家分:30] 发布于 2006-04-07 16:12:00
多谢楼上的兄弟 :)
但,小弟还有几点不明:
1。data.ADOQueryList.Params['i'].value = i;
// 这里的Params['i']中的i是不是”货物ID“所在的表中的位置,应该和‘=’后面的i是同一个值吧???
2。data.adoquerylist.sql.add(format('select * form 库存表 where 货物ID=%d', [i]));
//这里的[i]能不能直接就写成 i 呢?就是去掉‘[]’??
还有一个问题:Data.ADOQueryList.SQL.Add('select * form 库存表 where 货物ID='''+Edit1.Text+'''');其中的三个连续的'''和后面的四个连续的''''怎么理解啊???
再次感谢!!!
我来回复