L
lynu
Unregistered / Unconfirmed
GUEST, unregistred user!
我要在程序中做一個數據庫備份/恢復(服務器端)的功能,但結果未能成功,因為他老是提示
數據庫在使用中.
有人肯定要說只要關閉所有連接就行了,但我早就這樣做了,而我最后做了二個測試程序測試,
我認為ADOExpress的問題.
ADOConnection1連接到數據庫master,ADOQuery1連接到ADOConnection1,執行恢復數據庫
test的工作
ADOConnection2連接到數據庫test
procedure TNFrm.BitBtn2Click(Sender: TObject);
begin
ADOConnection2.Connected:=true;
ADOConnection2.Connected:=false;
//ADOConnection2.Free;也無作用.
end;
procedure TNFrm.BitBtn1Click(Sender: TObject);
var
ok:boolean;
begin
ok:=true;
ADOConnection1.Connected:=true;
try
ADOQuery1.ExecSQL
except
on E:exception do
begin
ok:=false;
ShowMessage('恢復數據庫失敗'+e.Message);
end
end;
if ok then ShowMessage('恢復成功');
end;
測試:在未執行
ADOConnection2.Connected:=true;
ADOConnection2.Connected:=false;
前,恢復數據庫可以成功,而一旦執行了這二句,那么再執行恢復就會提示數據庫在使用
但程序退出后重進可以恢復成功.
也就是說一旦打開過一個連接,即使關閉這個ADOConnection,事實上在程序退出前,
此程序與此數據庫還是一直連接著的.即使你將他連接到另外的一個數據庫或者將這個
ADOConnection Free掉,他與前一個數據庫也是一直連接著的!
我將二個ADOConnection的keepConnection設置為false/true,結果都一樣!
我用同一個ADOConnection,通過轉換當前數據,測試的結果與前面相同.
d6 UpdatePack2+SQLServer200,MDAC2.6,
D6除了UpdatePack1/2,有沒有其他補丁?
是delphi的問題還是ado的連接緩沖池的影響?
數據庫在使用中.
有人肯定要說只要關閉所有連接就行了,但我早就這樣做了,而我最后做了二個測試程序測試,
我認為ADOExpress的問題.
ADOConnection1連接到數據庫master,ADOQuery1連接到ADOConnection1,執行恢復數據庫
test的工作
ADOConnection2連接到數據庫test
procedure TNFrm.BitBtn2Click(Sender: TObject);
begin
ADOConnection2.Connected:=true;
ADOConnection2.Connected:=false;
//ADOConnection2.Free;也無作用.
end;
procedure TNFrm.BitBtn1Click(Sender: TObject);
var
ok:boolean;
begin
ok:=true;
ADOConnection1.Connected:=true;
try
ADOQuery1.ExecSQL
except
on E:exception do
begin
ok:=false;
ShowMessage('恢復數據庫失敗'+e.Message);
end
end;
if ok then ShowMessage('恢復成功');
end;
測試:在未執行
ADOConnection2.Connected:=true;
ADOConnection2.Connected:=false;
前,恢復數據庫可以成功,而一旦執行了這二句,那么再執行恢復就會提示數據庫在使用
但程序退出后重進可以恢復成功.
也就是說一旦打開過一個連接,即使關閉這個ADOConnection,事實上在程序退出前,
此程序與此數據庫還是一直連接著的.即使你將他連接到另外的一個數據庫或者將這個
ADOConnection Free掉,他與前一個數據庫也是一直連接著的!
我將二個ADOConnection的keepConnection設置為false/true,結果都一樣!
我用同一個ADOConnection,通過轉換當前數據,測試的結果與前面相同.
d6 UpdatePack2+SQLServer200,MDAC2.6,
D6除了UpdatePack1/2,有沒有其他補丁?
是delphi的問題還是ado的連接緩沖池的影響?