gbak и консольный вывод

IBX, FIBPlus, UIB, ADO, .Net и прочее-прочее-прочее, в общем все, что относится к созданию приложений, работающих с InterBase, Firebird и Yaffil - клиент-серверных, трехзвенных, консольных и т.п.

Модератор: kdv

Ответить
Linker
Сообщения: 3
Зарегистрирован: 08 сен 2007, 13:54

gbak и консольный вывод

Сообщение Linker » 08 сен 2007, 15:02

Сегодня решил написать небольшой интерфейс резервного копирования для своей программы и столкнулся со странным поведением утилиты gbak.
Дело в том, что у мне необходимо было получить результат работы данной программы, что бы было видно, были ли ошибки во время копирования или нет.
Так как программа консольная - думаю переправлю весь вывод и получу отчет. Но не тут то было! Провозившись еще немного времени решил проверить - набираю в коммандной строке:

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

gbak.exe -b -g -v -user SYSDBA -pass masterkey localhost:DBAlias e:\b.bk > 1.txt

результат тот же - все на экране, в файле - пусто.

Почему такое происходит и как же всетаки можно получить этот загадочный результат работы gbak?

Кузнецов Евгений
Сообщения: 144
Зарегистрирован: 16 фев 2006, 22:36

Re: gbak и консольный вывод

Сообщение Кузнецов Евгений » 08 сен 2007, 18:24

Доброго времени суток!

To Linker
Для перенаправления вывода в файл у gbak есть ключ -y
Ваш вариант не работает скорее всего потому, что gbak для Вашей версии сервера (кстати, какой?) выводит сообщения не в stdout, а в stderr. Конечно, можно перенаправить вывод (см. справку по Windows - "перенаправление выхода команды"), но лучше использовать стандартные средства gbak.

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 09 сен 2007, 02:07

Вроде gbak всегда так делал, дело тут не в версии сервера.

Linker
Сообщения: 3
Зарегистрирован: 08 сен 2007, 13:54

Сообщение Linker » 09 сен 2007, 04:53

Здравствуйте!

Большое спасибо за ответы, действительно проблема была в том что я читал данные из StdOut, исправив это - все заработало.

А версия сервера у меня - WI-V1.5.3.4870 Firebird 1.5

Так зависит ли вывод сообщений от версии сервера?

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

Сообщение kdv » 10 сен 2007, 01:29

вывод в файл, т.е. перенаправление, может работать или не работать. Зависит как от версии gbak, так и от версии виндов. Например, с gbak перенаправление вывода может не работать, а с gstat - без проблем.

в общем,используй -y <file>

Кузнецов Евгений
Сообщения: 144
Зарегистрирован: 16 фев 2006, 22:36

Сообщение Кузнецов Евгений » 10 сен 2007, 10:37

Доброго времени суток!

Да, похоже, gbak под Windows так себя вел всегда. Я столкнулся с этим на IB4 и полагал, что это древний баг, который давно уже исправлен, ан нет - для 2.0.1 то же самое. В общем, действительно, на это лучше не закладываться.

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 10 сен 2007, 10:56

Почему же сразу "баг"?
gbak в stdout пихает собственно поток данных, которые бэкапирует, и в некоторых ситуациях это большой плюс.

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

Сообщение kdv » 10 сен 2007, 11:19

ничего подобного, не баг. я вот реже сталкиваюсь с проблемой перенаправления вывода, чем с нормальной работой gbak.

Ответить