一个adodataset的问题,我真是被搞败了

ibicf 2003-12-08 03:57:47
sSql := ' select NAME_TX,LINKMAN_TX,NOTES_TX,VENDOR_ID from VENDOR where'+
' Fax_TX='+''''+Trim(EditFax.Text)+'''';
ADODataSet3.Close;
ADODataSet3.CommandText := sSql;
ADODataSet3.Open;
首先声明connection连接没有问题,然后我调用ADODataSet3.Fields[1].asstring出现list index out of bound(1),可是用一个dggrid调试是选出4个字段阿,大人帮忙啊,我苦啊。。。谢谢先
...全文
20 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2003-12-09
  • 打赏
  • 举报
回复
注意这里:'where Fax_TX=Trim(EditFax.Text)';
原因是: length(trim(EditFax.Text))大于Fax_TX字段的宽度。
ibicf 2003-12-09
  • 打赏
  • 举报
回复
我这么做的,把字段分开选,先选product_id,然后执行,在通过product_id去选其它字段,就可以解决,谢了各位。。。先放一天,明天揭帖,再次感谢
耙子 2003-12-08
  • 打赏
  • 举报
回复
不可能,没记录你只能访问 Fields[0]。
SeaWave 2003-12-08
  • 打赏
  • 举报
回复
我试过,无论数据集中是否有记录,都可以引用Fields[1]。
问题可能出在,楼主没有打ADO的补丁
zsjzwj 2003-12-08
  • 打赏
  • 举报
回复
回复人: ibicf(i believe i can fly) ( ) 信誉:96 2003-12-08 17:25:00 得分:0


估计是不是一个adoconnection可以连接的adodataset有限阿





楼主: 一个adoconnection连接的adodataset应该可以是N多个,
我曾经连过40个都没问题;

另:其实一般只要有4、5个adodataset就够用了;
ibicf 2003-12-08
  • 打赏
  • 举报
回复
估计是不是一个adoconnection可以连接的adodataset有限阿
  • 打赏
  • 举报
回复
sSql := 'SELECT NAME_TX, LINKMAN_TX, NOTES_TX, VENDOR_ID FROM VENDOR '
+ 'WHERE Fax_TX = ' + '''' + Trim(EditFax.Text) + '''' + '';

Sql语句做相应修改即可。
ibicf 2003-12-08
  • 打赏
  • 举报
回复
up
耙子 2003-12-08
  • 打赏
  • 举报
回复
正常的写法

if not(ADODataSet3.IsEmpty) then
ADODataSet3.Fields[1].asstring.....
manfeng 2003-12-08
  • 打赏
  • 举报
回复
即使没有数据也没关系,关键数据集要真的打开,你可以跟踪到ADODataSet3.Fields[1].asstring这一句看一下ADODataSet3.Fields[1].Count是多少,应该是4,如果是零就有问题
fjyhs 2003-12-08
  • 打赏
  • 举报
回复
sSql := ' select NAME_TX,LINKMAN_TX,NOTES_TX,VENDOR_ID from VENDOR where'+
' Fax_TX='+''''+Trim(EditFax.Text)+'''';
改为
sSql := 'select NAME_TX,LINKMAN_TX,NOTES_TX,VENDOR_ID from VENDORwhereFax_TX='''+Trim(EditFax.Text)+'''';
试一试
palu 2003-12-08
  • 打赏
  • 举报
回复
open以后在recordcount是多少?
ibicf 2003-12-08
  • 打赏
  • 举报
回复
zhangnan623老兄。。。bug again...55555
ibicf 2003-12-08
  • 打赏
  • 举报
回复
这个我试过了,再查询分析器中可以查出数据来,但在程序中调用就出错,我被打败了
palu 2003-12-08
  • 打赏
  • 举报
回复
查询有没有数据,如果没有数据即ADODataSet3.recordcount=0就会出现此错
zhangnan623 2003-12-08
  • 打赏
  • 举报
回复
sSql:= 'select NAME_TX,LINKMAN_TX,NOTES_TX,VENDOR_ID from VENDOR
where Fax_TX=''%s''';
sSql:=format(Ssql,[Trim(EditFax.Text)]);
ADODataSet3.Close;
ADODataSet3.CommandText := sSql;
ADODataSet3.Open;
ibicf 2003-12-08
  • 打赏
  • 举报
回复
对了,后台数据库用的是sql server,再次表示感谢

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧