Помогите с IBBackupService

Администирование клиентской и серверной части InterBase, Firebird, Yaffil. Настройка файла конфигурации и т.п.

Модераторы: kdv, Alexey Kovyazin

Ответить
alexber220
Сообщения: 14
Зарегистрирован: 05 окт 2006, 12:25

Помогите с IBBackupService

Сообщение alexber220 » 05 окт 2006, 16:20

При выполнении кода в Delphi

Код: Выделить всё

  with IBBackupService1 do
  begin
    ServerName:='localhost';
    Verbose := true;
    LoginPrompt:=False;
    Params.Add('user_name=sysdba');
    Params.Add('password=masterkey');
    Active:=True;
    try
      DatabaseName:='с:\test.fdb';
      BackupFile.Clear;
      BackupFile.Add('c:\test.fdk');
      ServiceStart;
      While not Eof do
      begin
        Application.ProcessMessages;
        Memo1.Lines.Add(GetNextLine);
      end;
    finally
      Active := False;
    end;
  end;
Вылазит куча сообщений
can't format message 12:169 -- message system code -6can't format message 12:108 -- message system code -6
Подскажите как лечится.

База 21 метр. Firebird 1.5 SS

Merlin
Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Сообщение Merlin » 05 окт 2006, 17:01

Скорей всего установкой на клиентской машине соответсвующей версии клиента вообще и файла firebird.msg в частности. Тогда пойдут реальные сообщения о неприятностях.

alexber220
Сообщения: 14
Зарегистрирован: 05 окт 2006, 12:25

Сообщение alexber220 » 05 окт 2006, 18:36

gbak: readied database c:\test.fdb for backup
gbak: creating file c:\test.fdk
gbak: starting transaction
gbak: database c:\test.fdb has a page size of 8192 bytes.
gbak: writing domains
gbak: writing domain RDB$1
gbak: writing domain RDB$2
gbak: writing domain RDB$3
gbak: writing shadow files
gbak: writing tables
gbak: writing table TEST1
gbak: writing column CONTENT
gbak: writing column ID
gbak: writing column SUBJECT
gbak: writing functions
gbak: writing types
gbak: writing filters
gbak: writing id generators
gbak: writing stored procedures
gbak: writing exceptions
gbak: writing Character Sets
gbak: writing Collations
gbak: writing data for table TEST1
gbak: 20000 records written
gbak: 40000 records written
gbak: 60000 records written
gbak: 80000 records written
gbak: 100000 records written
gbak: 120000 records written
gbak: 140000 records written
gbak: 160000 records written
gbak: 180000 records written
gbak: 200000 records written
gbak: 220000 records written
gbak: 240000 records written
gbak: 260000 records written


И всё файла даже вооружённым глазом не видно.

stix-s
Заслуженный разработчик
Сообщения: 557
Зарегистрирован: 13 дек 2005, 11:52

Сообщение stix-s » 05 окт 2006, 19:34

alexber220 писал(а):gbak: readied database c:\test.fdb for backup
gbak: creating file c:\test.fdk

И всё файла даже вооружённым глазом не видно.
якого файла? лога? бэкапа?
строчку вызова gbak кинь, чтоли

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 05 окт 2006, 19:53

кстати. обычно сначала указывают имя сервера, имя БД, имя бэкапа, и т.п., а потом вызывают ServiceStart (вместо Active:=True);

и еще - я не понял, как связаны ошибки без имени и "файла не видно".

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Сообщение Dimitry Sibiryakov » 06 окт 2006, 07:44

Наверное, аффтар пытается найти его на локальном С:...

alexber220
Сообщения: 14
Зарегистрирован: 05 окт 2006, 12:25

Сообщение alexber220 » 06 окт 2006, 09:09

kdv писал(а):кстати. обычно сначала указывают имя сервера, имя БД, имя бэкапа, и т.п., а потом вызывают ServiceStart (вместо Active:=True);

и еще - я не понял, как связаны ошибки без имени и "файла не видно".
Спасибо помогло. Только attach/detach добавил ещё.

Код: Выделить всё

  with IBBackupService1 do
  begin
    ServerName:='localhost';
    Verbose := true;
    LoginPrompt:=False;
    Params.Add('user_name=sysdba');
    Params.Add('password=masterkey');
    attach;
    try
      DatabaseName:='c:\test.fdb';
      BackupFile.Clear;
      BackupFile.Add('c:\test.fdk');
      ServiceStart;
      While not Eof do
      begin
        Application.ProcessMessages;
        Memo1.Lines.Add(GetNextLine);
      end;
    finally
      Detach;
    end;

Ответить