请教(50分)

  • 主题发起人 主题发起人 xhqq
  • 开始时间 开始时间
X

xhqq

Unregistered / Unconfirmed
GUEST, unregistred user!
请问各位!我下面的代码错在那里!为什么老是出错的!
adoquery3.Close;
adoquery3.SQL.Clear;
adoquery3.SQL.Add('select * from '+itable+' where CONTRACT ='''+ dbgrid1.Fields[0].Value +'''');
adoquery3.Open;
label2.Caption:=adoquery3.FieldByName('CONTRACT').AsString ;
IF ADODataSet1.FieldByName('CONTRACT').AsString<>'' then
begin
.
.
.
end;
 
itable是什么东东?
 
一个变量!就最是我在找开的数据库!
 
好像应该是SQL语句的单引号的错误,建议进行调试一下:

strDebug:='select * from '+itable+' where CONTRACT ='''+ dbgrid1.Fields[0].Value +'''';
ShowMessage(strDebug);
看看有什么信息,SQL 语句是不是正确。
 
dbgrid1.Fields[0].Value 什么类型?
还有,具体的出错信息为什么?
 
出错提示为:
Invalid variant type conversion
 
---- where CONTRACT ='''+ dbgrid1.Fields[0].Value +'''');
那可能是你的Contract值转换问题
在 dbgrid1.fields[0].value前加上字符转换,具体看你的Fields[0]的类型。
如是integer 则 IntToStr(DbGrid1.Fields[0].value) ,只还要注意引号的问题.  
 
我应该怎么看才懂Fields[0]的类型是什么呢?
 
dbgrid1.Fields[0].AsString.
 
DBGrid1.Fields[0].DataType
 
你看table中的字段类型就行了.第1 个字段.
 

Similar threads

I
回复
0
查看
609
import
I
I
回复
0
查看
669
import
I
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部