List index out of bounds (0).?(60分)

  • 主题发起人 主题发起人 ygq
  • 开始时间 开始时间
Y

ygq

Unregistered / Unconfirmed
GUEST, unregistred user!
我设计了一个查询,用ADO连ACCESS2000,我用ADOQUERY实现模糊查询,找到最大值然后加1
实现编号的增加。如:
我要查询编号中最大的值,编号为字符型。
例子:编号 01012 010121 010122
假设我取上次编号 sno=010121 ,则
close;
sql.clear;
sql.add('select top 1 编号 from gsk1');
sql.add('where 编号 like bh');
sql.add('order by 编号 desc');
Parameters[0].value:=copy(sno,1,length(sNo)-1)+'#';
ExecSQL;
我想通过这个查询查出最大编号为010122,但是总要显示List index out of bounds (0)
为什么?
 
单步调试看看到哪一步出错,可能是下标出错,注意下标开始,有些是1
 
在你这个查询中没有设置参数!
Parameters[0].value:=copy(sno,1,length(sNo)-1)+'#';出错!
 
那应该怎样设置这个参数呢?急!!!!!
 

close;
sql.clear;
sql.add('select top 1 编号 from gsk1');
sql.add('where 编号 like bh'); --> sql.add('where 编号 like :bh');
sql.add('order by 编号 desc');
Parameters[0].value:=copy(sno,1,length(sNo)-1)+'#';
ExecSQL;

凡是参数名前面要加上“:”冒号.
 
还有在ADO中不能写Parameters[0].value
而应该写成Parameters.parameterbyname('bn').value := ''
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部