delphi新手一枚。。本想慢慢学。。但是现在有点事着急用,还想问问各位大侠。。
关于delphi数据库这里。。一段指令,本意是每次点击按钮后将选中项移动到另外一个数据库,点击后也能实现。问题是为什么再不退出程序的情况下,连续点击按钮后会报错语法错误在from 单选题 where xh='''+inttostr(A[j])+''''这里。不是每次都重新连接"单选题"表了么?为什么会报错啊?
代码如下:
ADOQuery1.Close;
ADOQuery1.SQL.Add('select * from 单选题');
ADOQuery1.Open;
v:=ADOQuery1.RecordCount;
p:=v+1;
Randomize;
setlength(A,p);
for i:=1 to v do
begin
A[i]:=i;
end;
for i := 1 to 2 do
begin
J:= Random(v - I) + 1 ;
with ADOQuery1 do
begin
Close;
Sql.Clear;
Sql.Add('insert into 考卷 (wt,daa,dab,dac,dad,da,lx) Select wt,daa,dab,dac,dad,da,lx from 单选题 where xh='''+inttostr(A[j])+'''');
Execsql;
end;
A[J]:=A[v-i+1] ;
end;
关于delphi数据库这里。。一段指令,本意是每次点击按钮后将选中项移动到另外一个数据库,点击后也能实现。问题是为什么再不退出程序的情况下,连续点击按钮后会报错语法错误在from 单选题 where xh='''+inttostr(A[j])+''''这里。不是每次都重新连接"单选题"表了么?为什么会报错啊?
代码如下:
ADOQuery1.Close;
ADOQuery1.SQL.Add('select * from 单选题');
ADOQuery1.Open;
v:=ADOQuery1.RecordCount;
p:=v+1;
Randomize;
setlength(A,p);
for i:=1 to v do
begin
A[i]:=i;
end;
for i := 1 to 2 do
begin
J:= Random(v - I) + 1 ;
with ADOQuery1 do
begin
Close;
Sql.Clear;
Sql.Add('insert into 考卷 (wt,daa,dab,dac,dad,da,lx) Select wt,daa,dab,dac,dad,da,lx from 单选题 where xh='''+inttostr(A[j])+'''');
Execsql;
end;
A[J]:=A[v-i+1] ;
end;
ADOQuery1.Clear;//增加这句
ADOQuery1.SQL.Add('select * from 单选题');
ADOQuery1.Open;
v:=ADOQuery1.RecordCount;
如果异常捕获语句找到错误, 你就看看A[j]的值是否正确try
showmessage('insert into 考卷 (wt,daa,dab,dac,dad,da,lx) Select wt,daa,dab,dac,dad,da,lx from 单选题 where xh='''+inttostr(A[j])+'''');
except on e : exception do
showmessage(e.message);
end;
{with ADOQuery1 do
begin
Close;
Sql.Clear;
Sql.Add('insert into 考卷 (wt,daa,dab,dac,dad,da,lx) Select wt,daa,dab,dac,dad,da,lx from 单选题 where xh='''+inttostr(A[j])+'''');
Execsql;
end;}