на Delphi 6 эта функция работает , а на 7 почему то нет
function TfmMain.StartRestore(FileName: String): Boolean;
var
Cursor: TCursor;
begin
Cursor := Screen.Cursor;
Screen.Cursor := crSQLWait;
Result:=False;
try
ibRestore.BackupFile.Add(FileName);
ibRestore.DatabaseName.Add(dbALI.DatabaseName);
ibRestore.Attach();
ibRestore.ServiceStart;<---здесь выполнение функции прекращается
Result:=True;
finally
if ibRestore.Active then ibRestore.Detach();
Screen.Cursor := Cursor;
end;
end;
TibRestore не выполняется функция восстановления
Модераторы: kdv, Alexey Kovyazin
IBRestore.ServerName:='server';
IBRestore.Protocol:=TCP;
IBRestore.DatabaseName.Add('c:\dir\data.gdb');
IBRestore.BackupFile.Add('c:\dir\data.gbk');
...
в DatabaseName НЕ пишется имя сервера. Оно пишется только в ServerName. Ты бы указал, чем ты там заполняешь параметры.
IBRestore.Protocol:=TCP;
IBRestore.DatabaseName.Add('c:\dir\data.gdb');
IBRestore.BackupFile.Add('c:\dir\data.gbk');
...
в DatabaseName НЕ пишется имя сервера. Оно пишется только в ServerName. Ты бы указал, чем ты там заполняешь параметры.
потому что не может к серверу достучаться?ibRestore.ServiceStart;<---здесь выполнение функции прекращается
Код: Выделить всё
function TfmMain.StartRestore(FileName: String): Boolean;
var
Cursor: TCursor;
begin
Cursor := Screen.Cursor;
Screen.Cursor := crSQLWait;
Result:=False;
try
MainTransaction.CommitRetaining;
MainTransaction.Active:=False;
ibRestore.Attach;
ShutDownDataBase;
ibRestore.BackupFile.Add(FileName);
ibRestore.DatabaseName.Add(dbALI.DatabaseName);
ibRestore.ServiceStart;
Result:=True;
finally
if ibRestore.Active then ibRestore.Detach();
Screen.Cursor := Cursor;
end;
end;
procedure TfmMain.ShutDownDataBase;
begin
if MainTransaction.InTransaction then
MainTransaction.Commit;
dbALI.CloseDataSets;
dbALI.Close;
end;
Options [Replace,CreateNewDB,UseAllSpace]
PageSize 8192
Запускаю на сервере
Server ''
Ругается Cannot perform operation DB is not open,
а когда базу не выключаю ругается на то что транзакция активна