回 帖 发 新 帖 刷新版面

主题:请教一个问题,急!!在线等,谢谢!

var i:integer;
    i:=strtoint(Edit1.Text);//Edit1.Text 非空。

Data.ADOQueryList.SQL.Add('select * form 库存表 where 货物ID=i');


系统老是提示我,i没有初始值,不知道怎么回事,希望大家帮个忙,解答一下,谢了!

回复列表 (共5个回复)

沙发

Data.ADOQueryList.SQL.Add('select * form 库存表 where 货物ID='+inttostr(i));

板凳

多谢楼上的,能不能再解释一下为什么要这样写?非常感谢!

3 楼

我明白了,谢谢了!

4 楼

因为你写的'.... =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 楼

多谢楼上的兄弟 :)
但,小弟还有几点不明:
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+'''');其中的三个连续的'''和后面的四个连续的''''怎么理解啊???
再次感谢!!!

我来回复

您尚未登录,请登录后再回复。点此登录或注册