delphi ADOQuery if语句如何改正,目前显示“list index out of bounds(2)"

wallyhost0 2012-05-11 10:09:39
procedure TForm8.FormShow(Sender: TObject);
begin
Form8.ADOQuery1.close;
Form8.ADOQuery1.SQL.Clear;
Form8.ADOQuery1.SQL.add('select 提醒日期,提醒内容 from reminder');
Form8.ADOQuery1.Prepared;
Form8.ADOQuery1.Open;
while not Form8.ADOQuery1.Eof do
begin
if ADOQuery1.Fields[2].AsDateTime < Date+10 then
begin
showmessage(trim(ADOQuery1.Fields[3].AsString));//显示该行提醒内容
end;
Form8.ADOQuery1.Next;
end;
end;

求解!
...全文
280 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ron_xin 2012-05-12
  • 打赏
  • 举报
回复
With ADOQuery1 do
begin
close;
SQL.Clear;
SQL.Add('select 提醒日期,提醒内容 from reminder');//您这里只select 两列
Open;
while not Eof do
begin
if Fields[0].AsDateTime>Date-5 then
begin
showmessage(trim(Fields[1].AsString));//显示该行提醒内容
//这行改变此表格此行的颜色
end;
Next;
end;
end;
Oraclers 2012-05-11
  • 打赏
  • 举报
回复
这样的情况用下列样式语句比较好:
ADOQuery1.FieldByName('提醒日期').AsDateTime
kaikai_kk 2012-05-11
  • 打赏
  • 举报
回复
查询中只有2个字段,Fields是从0开始的,所以"提醒日期"对应的就是Fields[0],"提醒内容"就是Fields[1]

改成:
ADOQuery1.Fields[0].AsDateTime
fox600123 2012-05-11
  • 打赏
  • 举报
回复
Fields[2]应该是第3个字段(0..2),显然select中只有2个字段

2,498

社区成员

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

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