急,菜鸟求助,高手帮帮忙啊~~
pm:=ADOQuery1.Fields[i].AsVariant;
name:=ADOQuery1.Fields[i].FieldName;//保存下当前列的名字和值
self.ADOQuery2.Active:=false;
if self.RadioButton2.Checked=True then
self.ADOQuery2.SQL.Text:='select * from 女子七项成绩 where :han>:lin'
else
self.ADOQuery2.SQL.Text:='select * from 男子十项成绩 where :han>:lin' ;
Self.ADOQuery2.Parameters.ParamByName('lin').Value:=pm;
Self.ADOQuery2.Parameters.ParamByName('han').Value:=name;
self.ADOQuery2.Active:=true;
每次都提示找不到lin这个变量,请问是我的变量类型设置的有错误吗?还是我的SQL语句写的有问题?
我写“where :han>:lin”这样可以吗?
还有,我老是遇见找不到变量的问题,请问一般都是什么情况会出现这种错误呢?
问题点数:0、回复次数:7Top
1 楼xzl_kye(xiezhangliang)回复于 2005-06-04 13:41:49 得分 0
adoquery1.Close;ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from bominfo where 字段名=:參數名' );
ADOQuery1.Parameters.ParamByName('參數名').Value:=參數值;
ADOQuery1.Open;Top
2 楼redsea317(水纹)回复于 2005-06-04 16:16:55 得分 0
xzl_kye兄,还是不行啊,我按照你的格式写,但还是提示lin找不到,晕,这几天就要交程序了,急啊~Top
3 楼beicun(陪我看日落)回复于 2005-06-04 16:30:08 得分 0
不懂,比较一个字段的值和字段名?Top
4 楼redsea317(水纹)回复于 2005-06-04 16:47:14 得分 0
对啊,从当前的记录中取字段名,然后比较这个字段中大于自己的条数。
由于循环的每次字段名都是不一样的,比方有100米的,有400米的,所以每次都得临时取,就写成了
:han>:lin,呵呵,没有办法啊,也不知道能不能这样写
Top
5 楼redsea317(水纹)回复于 2005-06-05 14:06:11 得分 0
兄弟姐妹们帮帮忙,很急啊~~Top
6 楼5043682(投身于..??)回复于 2005-06-05 14:22:13 得分 0
你可以在SQL语句里面把变量定义了啊Top
7 楼duanhai(段海)回复于 2005-06-05 14:29:52 得分 0
self.ADOQuery2.Active:=false;
if self.RadioButton2.Checked=True then
self.ADOQuery2.SQL.Text:=
'select * from 女子七项成绩 where ' + name + '=' + QuotedStr(pm)
else
self.ADOQuery2.SQL.Text:=
'select * from 男子十项成绩 where ' + name + '=' + QuotedStr(pm);
self.ADOQuery2.Active:=true;
Top




