数据备份碰到的问题

天行归来 2003-03-04 09:41:37
在作数据备份的时候,TADOConnection 连接关闭之后,为什么并不会立即切断和数据库的连接?我的做法是:adoconnection.close,然后adoconnection.keepconnection := FALSE。我在SQLServer里面仍然可以未看到连接logout,执行exec sp_who 'sa',发现 sa 仍然在访问我的数据库。如果执行adoconnection.Free,可以切断连接,但不能做free操作,因为adoconnection仍然需要使用它。各位有什么点子可以让adoconnection 迅速和数据库断开连接?
...全文
37 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjhydx98 2003-03-04
  • 打赏
  • 举报
回复
我的这段代码在我的程序中运行没问题,你可以试一试
procedure TFmainform.N42Click(Sender: TObject);
var
filstr:string;
begin
if messagedlg('是否执行数据库备份!!',mtconfirmation,[mbyes,mbno],0)=mryes then
begin
if savedialog1.Execute then
filstr:=savedialog1.FileName ;
try
with jyd.command do
begin
close;
sql.clear;
sql.text:=format('backup database jydfc to disk=''%s'' with init',[filstr]);
execsql;
messagedlg('数据库备份成功,请退出系统再重新登录!!',mtconfirmation,[mbok],0);
application.Terminate ;
end;
except
on exception do
if jyd.ADOConnection1.InTransaction then
jyd.ADOConnection1.RollbackTrans
end;
end;
end;
蝈蝈太阳 2003-03-04
  • 打赏
  • 举报
回复
我靠,SB,正因为这个你的数据库再次连接时才使得速度非常快,
而且,这对程序员来说是透明的,有必要考虑这个问题吗?
你找本关于连接池的理论书籍看看吧!OK?
lyhold 2003-03-04
  • 打赏
  • 举报
回复
adoconnection有个连接池,你必须清空他!
sysu 2003-03-04
  • 打赏
  • 举报
回复
adoconnection.connectionString:=''; 也不行的。好象都会连着数据库。
bluemeteor 2003-03-04
  • 打赏
  • 举报
回复
adoconnection.connectionString='';
adoconnection.close
idilent 2003-03-04
  • 打赏
  • 举报
回复
先执行adoconnection.keepconnection := FALSE在执行adoconnection.close看看。或者使用adoconnection.connection:=false看看如何。

2,498

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧