我的源程序是这样: with database1 dobegin database1.Close; database1.params.Values['USER NAME']:='tyadmin'; database1.params.Values['PASSWORD']:='wr8111'; database1.Open; database1.StartTransaction; try if query1.active then begin datasource1.dataset:=query1; query1.Close; query1.SQL.Clear; query1.sql.add('delete from exp where 序号='''+trim(edit1.Text)+''''); query1.Open; end else begin query1.SQL.Clear; query1.sql.add('delete from exp where 序号='''+trim(edit1.Text)+''''); query1.Open; end ; database1.commit; except database1.Rollback; end; end;错误是这样:error creating cursor handle
with database1 dobegin
database1.Close;
database1.params.Values['USER NAME']:='tyadmin';
database1.params.Values['PASSWORD']:='wr8111';
database1.Open;
database1.StartTransaction;
try
if query1.active then
begin
datasource1.dataset:=query1;
query1.Close;
query1.SQL.Clear;
query1.sql.add('delete from exp where 序号='''+trim(edit1.Text)+'''');
query1.Open;
end
else
begin
query1.SQL.Clear;
query1.sql.add('delete from exp where 序号='''+trim(edit1.Text)+'''');
query1.Open;
end ;
database1.commit;
except
database1.Rollback;
end;
end;错误是这样:error creating cursor handle
Open仅用于Select
而Insert, Updete和Delete必须用execsql才能够提交成功
将query1.Open改为query1.Execsql即可