IBX, FIBPlus, UIB, ADO, .Net и прочее-прочее-прочее, в общем все, что относится к созданию приложений, работающих с InterBase, Firebird и Yaffil - клиент-серверных, трехзвенных, консольных и т.п.
Модератор: kdv
-
Linker
- Сообщения: 3
- Зарегистрирован: 08 сен 2007, 13:54
Сообщение
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
Сообщение
Кузнецов Евгений » 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.