使用了一个query和一个source用来连接数据库,代码如下:with query1 do
begin
close;
sql.clear;
sql.add('select * from t1 where a1=:b1');
parambyname('b1').asstring:=trim(edit1.text);
open;
end;
if query1.recordcount<>0 then
begin
with query1 do
begin
close;
sql.clear;
sql.add('update t2 set a1=:b1');
parambyname('b1').asstring:=trim(edit2.text);
execsql;
end;
if query1.recordcount<>0 then
showmessage('更新成功')
else
showmessage('更新失败');
end
else
showmessage('找不到相应的记录');运行之后,系统提示"不能运行在一个关闭的dataset上".
问题是找出来了(只要去掉其中一个query1.recordcount的判断程序就正常了.我也试过:使用2个query和2个source分别对表t1和t2进行连接,其中一个判断也改为query2.recordcount,但是还是出现相同的错误.
但是不知道是什么原因引起的?有什么解决办法没有???
begin
close;
sql.clear;
sql.add('select * from t1 where a1=:b1');
parambyname('b1').asstring:=trim(edit1.text);
open;
end;
if query1.recordcount<>0 then
begin
with query1 do
begin
close;
sql.clear;
sql.add('update t2 set a1=:b1');
parambyname('b1').asstring:=trim(edit2.text);
execsql;
end;
if query1.recordcount<>0 then
showmessage('更新成功')
else
showmessage('更新失败');
end
else
showmessage('找不到相应的记录');运行之后,系统提示"不能运行在一个关闭的dataset上".
问题是找出来了(只要去掉其中一个query1.recordcount的判断程序就正常了.我也试过:使用2个query和2个source分别对表t1和t2进行连接,其中一个判断也改为query2.recordcount,但是还是出现相同的错误.
但是不知道是什么原因引起的?有什么解决办法没有???
begin
close;
sql.clear;
sql.add('select * from t1 where a1=:b1');
parambyname('b1').asstring:=trim(edit1.text);
open;
end;
if query1.recordcount<>0 then
begin
with query1 do
begin
close;
sql.clear;
sql.add('update t2 set a1=:b1');
parambyname('b1').asstring:=trim(edit2.text);
execsql;
end;
if query1.recordcount<>0 then
showmessage('更新成功')
else
showmessage('更新失败');
end
else
showmessage('找不到相应的记录');
这样就不会报错了
————————————————————————————
//再次对query1赋值,因为之前赋的值,已经被清空了
with query1 do
begin
close;
sql.clear;
sql.add('select * from t1 where a1=:b1');
parambyname('b1').asstring:=trim(edit1.text);
open;
end;
//
——————————————————————————
with query1 do
begin
close;
sql.clear;
sql.add('select * from t1 where a1=:b1');
parambyname('b1').asstring:=trim(edit1.text);
open;
end;
if query1.recordcount<>0 then
begin
with query1 do
begin
close;
sql.clear;
sql.add('update t2 set a1=:b1');
parambyname('b1').asstring:=trim(edit2.text);
execsql;
end;
————————————————————————————
//再次对query1赋值,因为之前赋的值,已经被清空了
with query1 do
begin
close;
sql.clear;
sql.add('select * from t1 where a1=:b1');
parambyname('b1').asstring:=trim(edit1.text);
open;
end;
//
——————————————————————————————
if query1.recordcount<>0 then
showmessage('更新成功')
else
showmessage('更新失败');
end
else
showmessage('找不到相应的记录');这样就不会报错了