Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Firebird создание архивной копии  (Прочитано 8966 раз)
0 Пользователей и 1 Гость смотрят эту тему.
liones
Постоялец

ru
Offline Offline
Пол: Женский

« : 28-04-2010 04:38 » 

Подскажите, пожалуйста, как программно создать архивную копию базы. Есть конешно утилиты сервера специальные, но не могу сообразить как их вызвать из своего приложения.
Записан
x77
Модератор

ro
Offline Offline
Пол: Мужской
меняю стакан шмали на обратный билет с Марса.


« Ответ #1 : 28-04-2010 09:00 » 

если вы используете штатные IBX, то для них надо ставить обновление на седьмую версию дельфей, после чего накатывать ещё один пакет с административными тулзами. лучше всего изначально использовать FIB+, в который эти утилиты входят изначально, да и сами компоненты позволяют сэкономить кучу времени.

в общем случае, чтобы создать архивную копию базы, вам надо подключиться к так называемому Service Manager-у, представиться, и дать ему соответствующую команду. делается это через клиентскую часть. для FB - это fbclient.dll, для IB - gds32.dll. нормальные клиенты позволяют на подобные нюансы не заморачиваться, но поскольку исходники того же ФБ открыты - всегда можете под любой язык написать хидеры, импортнуть функции, и спокойно их юзать.

liones, если вы хотите что-либо "сделать программно", указывайте язык, хорошо? потому что лето, и телепаты в отпусках. на PHP, например, всё это придётся немного по-другому делать.
Записан

x77
Модератор

ro
Offline Offline
Пол: Мужской
меняю стакан шмали на обратный билет с Марса.


« Ответ #2 : 28-04-2010 11:26 » 

liones, если Вы планируете подружится с жарптицей, очень внимательно изучите ibase.ru.
Записан

liones
Постоялец

ru
Offline Offline
Пол: Женский

« Ответ #3 : 25-10-2010 04:16 » 

Пыталась сделать копию из командной строки утилитой gbak.exe. Написала вот такой код для кнопки
Код:
comstr:='"'+utilitpath+'gbak.exe" -b "'+datpath+'BD.gdb" "'+arhivpath+'copy.gbk"';
ShellExecute(Handle,'open',pchar(comstr),nil,nil,sw_show);
но не работает. Где ошибка?
Руками из командной строки все работает, проверяла, копию делает.
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #4 : 25-10-2010 04:39 » 

бэкап
gbak.exe -user ЮЗЕР -pas ПАРОЛЬ -b "ПОЛНЫЙ ПУТЬ К БАЗЕ" "ПОЛНЫЙ ПУТЬ К БЭКАПУ" -v

восстановление
gbak.exe -user ЮЗЕР -pas ПАРОЛЬ -r "ПОЛНЫЙ ПУТЬ К БЭКАПУ" "ПОЛНЫЙ ПУТЬ К БАЗЕ" -o -v

(параметр -o - восстанавливать по одной таблице)
(параметр -v - показывать вывод в консоли)

зачем у меня параметр -o присутствует, я уже не помню ))) Пусть знатоки подскажут, как лучше...
Записан

liones
Постоялец

ru
Offline Offline
Пол: Женский

« Ответ #5 : 25-10-2010 05:01 » 

а почему тогда из командной строки не требует ни пароля, ни пользователя?

Добавлено через 2 минуты и 52 секунды:
похоже проблема не в пароль-пользователь, а в вызове процедуры
Код:
ShellExecute(Handle,'open',pchar(comstr),nil,nil,sw_show);
« Последнее редактирование: 25-10-2010 05:04 от liones » Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #6 : 25-10-2010 05:12 » 

Цитата
а почему тогда из командной строки
из какой именно командной строки ?

Добавлено через 1 минуту и 47 секунд:
liones, в вызове функции сделай разделение по запускаемому и параметрам:

модуль:
gbak.exe

параметры:
-user ЮЗЕР -pas ПАРОЛЬ -b "ПОЛНЫЙ ПУТЬ К БАЗЕ" "ПОЛНЫЙ ПУТЬ К БЭКАПУ" -v

 
« Последнее редактирование: 25-10-2010 05:14 от Алексей1153 » Записан

Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines