我想利用ware(id,code,name,...)建立自动编号, 其中code是varchar类型,代码如下:procedure Teditsp.NewCode(Sender: integer);
var code: string;
begin
Query1.Close;
Query1.sql.text := 'select count(*) from ware';
Query1.open;
code := floattostr(100000 + Query1.fields[1].asfloat + Sender);
Query1.Close;
Query1.sql.text := 'select count(*) from ware where code=:code';
Query1.Parameters[0].Value := code;
Query1.open;
if Query1.Fields[1].Value > 0 then
begin
Sender := sender + 1;
Newcode(sender);
end
else
begin
spda.ADOTable2.FieldByName('code').value := code;
end;
end;
但运行后错误提示:
list index out of bounds(1)
我知道是越界了,但找不到什么原因?谢谢!!
var code: string;
begin
Query1.Close;
Query1.sql.text := 'select count(*) from ware';
Query1.open;
code := floattostr(100000 + Query1.fields[1].asfloat + Sender);
Query1.Close;
Query1.sql.text := 'select count(*) from ware where code=:code';
Query1.Parameters[0].Value := code;
Query1.open;
if Query1.Fields[1].Value > 0 then
begin
Sender := sender + 1;
Newcode(sender);
end
else
begin
spda.ADOTable2.FieldByName('code').value := code;
end;
end;
但运行后错误提示:
list index out of bounds(1)
我知道是越界了,但找不到什么原因?谢谢!!
if Query1.Fields[0].Value > 0 then
又发生另一个错误:
access violation at address 0081AF2C in module...
code:string;换个变量名