"Grid index out of range"?CSDN到底有没有高人?

delphiyesterday 2003-02-09 01:37:04
为何我的Adoquery增加记录有时会出现"Grid index out of range"?何解?用的是DBGrid,代码应没错,就好象:
DataModule1.adoquery1.close;
DataModule1.adoquery1.sql.text:='select * from ddxx';
DataModule1.adoquery.open;
with DataModule1.adoquery1 do
begin
last;
id:=fieldbyname('ddid').asinteger;
append;
edit;
fieldbyname('ddid').asinteger:=id+1;
post;
end;

是不是我的DBGRID一定要显视如ddxx表里的所有fields才行?

...全文
963 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ahuige 2003-02-10
  • 打赏
  • 举报
回复
我也有过这种情况,估计问题是在于你引用了比现有记录条数还大的序号。
好象是在完成了这个操作后,及时把数据指针回到开头就解决了。
所以在后面加一个first操作吧,如果不影响你后面的操作。
delphiyesterday 2003-02-09
  • 打赏
  • 举报
回复
yhj78(阿东) ,你好, 有什么好方法, 能不能给代码出来? 谢了.
yhj78 2003-02-09
  • 打赏
  • 举报
回复
建议不要使用这种方法自动增加表记录,
这样对记录的各字段控制不利!
delphiyesterday 2003-02-09
  • 打赏
  • 举报
回复
但为何有时没到10条记录就没事,一超过10条记录就“grid index out of range"?
Wally_wu 2003-02-09
  • 打赏
  • 举报
回复
因为Append方法需要指定索引值,
所以你不妨将你的Coding改成这样
DataModule1.adoquery1.close;
DataModule1.adoquery1.sql.text:='select * from ddxx';
DataModule1.adoquery.open;
with DataModule1.adoquery1 do
begin
last;
id:=fieldbyname('ddid').asinteger;
sql.Text := 'Insert into ddxx(ddid) values(:id)'
Parameters[0].value := id+1;
ExecSQL;
end;
china_lyz 2003-02-09
  • 打赏
  • 举报
回复
为何我的Adoquery增加记录有时会出现"Grid index out of range"?何解?用的是DBGrid,代码应没错,就好象:
DataModule1.adoquery1.close;
DataModule1.adoquery1.sql.text:='select * from ddxx';
DataModule1.adoquery.open;
////应该改为DataModule1.adoquery1.open;
with DataModule1.adoquery1 do
begin
last;
id:=fieldbyname('ddid').asinteger;
append;
edit;
fieldbyname('ddid').asinteger:=id+1;
post;
end;

是不是我的DBGRID一定要显视如ddxx表里的所有fields才行?
dyf2001 2003-02-09
  • 打赏
  • 举报
回复
我好像遇到过一次,可能是浮点类型字段的精度过高溢出了,察看一下adoquery1的field,如果field是动态生成将adoquery1的bcdenabled设为false。试试看
delphiyesterday 2003-02-09
  • 打赏
  • 举报
回复
suosuoyyy(羊羊) 你好。 你所说的这些应都没问题。

各位go on
suosuoyyy 2003-02-09
  • 打赏
  • 举报
回复
edit;这一句应该可以不要,另外,post之前必须保证所有非空字段必须赋值;检查一下你的ddxx表,看哪些字段不为空

5,379

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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