Inno setup и FireBird

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

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

Ответить
Matveih1
Сообщения: 41
Зарегистрирован: 11 дек 2007, 14:50

Inno setup и FireBird

Сообщение Matveih1 » 25 янв 2011, 10:09

Добрый день.

Подскажите как с помощью Inno Setup проверить установлена ли на машине клиента FB, определить версию FB, проверить пароль SYSDBA и наличие пользователя?
Наверняка кто то сталкивался с подобным. Поделитесь опытом решения возникшей проблемы.

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

Re: Inno setup и FireBird

Сообщение Dimitry Sibiryakov » 25 янв 2011, 14:50

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

И главное правило - ни в коем случае приложению не требуется знать пароль пользователя SYSDBA.

Matveih1
Сообщения: 41
Зарегистрирован: 11 дек 2007, 14:50

Re: Inno setup и FireBird

Сообщение Matveih1 » 25 янв 2011, 15:16

Ну приложению пароль SYSDBA и не нужен. Пароль нужен SETUP что бы добавить пользователя под которым можно будет войти в систему.
Это не правильно что для работы приложения, надо еще доставить кучу софта. Есть 1 SETUP и он может поставить все что ему надо для работы.

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

Re: Inno setup и FireBird

Сообщение kdv » 25 янв 2011, 16:14

в исходниках FB есть скрипт inno setup, его берите и исследуйте.
http://sf.net/projects/firebird
дальше в cvs, browse, и т.п.

Matveih1
Сообщения: 41
Зарегистрирован: 11 дек 2007, 14:50

Re: Inno setup и FireBird

Сообщение Matveih1 » 25 янв 2011, 17:33

Исследовал, но там нет проверки пароля и пользователя. Там только запущена служба или нет. И если нет то накатывает сервер и все. Тут немного не так желательно.

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

Re: Inno setup и FireBird

Сообщение kdv » 25 янв 2011, 21:33

то есть, вам желательно разжевать и в рот положить?

кстати, а почему нельзя в своем инсталляторе уже СРАЗУ иметь в security2.fdb готового пользователя? Зачем вот этот изврат, чтобы инсталлятор коннектился к тут же установленному серверу, создавал пользователя?
Вы же можете это сделать и в приложении, обнаружив, что пользователя нет.
Это не правильно что для работы приложения, надо еще доставить кучу софта. Есть 1 SETUP и он может поставить все что ему надо для работы.
какой-то поток сознания. Вы про какую "кучу софта", и кто этот софт вас заставляет ставить?

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

Re: Inno setup и FireBird

Сообщение Dimitry Sibiryakov » 26 янв 2011, 14:48

Ну, типа сначала надо поставить Windows. Но эту задачу он, по всей видимости, уже решил.

Аффтар, сервер ставится на сервер, клиентское приложение ставится на рабочую станцию. Запихать их в один инсталлятор, конечно, можно, но нафиг не нужно.

Matveih1
Сообщения: 41
Зарегистрирован: 11 дек 2007, 14:50

Re: Inno setup и FireBird

Сообщение Matveih1 » 26 янв 2011, 15:28

Давайте по порядку.
kdv писал(а):кстати, а почему нельзя в своем инсталляторе уже СРАЗУ иметь в security2.fdb готового пользователя?
-- т.е. получается у пользователя уже стоит сервер, заведены пользователи, а я с чего то решил что имею право все это не учитывать а заменить файл с пользователями своим файлом с одним пользователем. Вот это подход.
В приложении конечно можно, конечно можно и от пользователя требовать определенный знания. Но это не правильно.
Dimitry Sibiryakov писал(а):Ну, типа сначала надо поставить Windows. Но эту задачу он, по всей видимости, уже решил.
-- не надо недооценивать автором вопросов. Ответа так и не последовало, а вот остроты уже есть. Нужно все это для удобство конечного пользователя.
Проблему решил. Написал DLL которая все проверяет и делает (что тоже не совсем правильно). Хотел спросить у умных людей может есть более изящный метод, какие то стандартные проверки. Видимо нет или никто этим вопросом не задавался. Если есть какие то мысли, то буду рад если поделитесь (т.к. тут есть действительно опытные и умные парни, которые очень подробно отвечают и указывают хорошие ссылки где можно посмотреть)
Не могу понять одного, почему если человек обратился за помощью то он обязательно глупее отвечающих?

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

Re: Inno setup и FireBird

Сообщение kdv » 27 янв 2011, 10:55

-- т.е. получается у пользователя уже стоит сервер, заведены пользователи, а я с чего то решил что имею право все это не учитывать а заменить файл с пользователями своим файлом с одним пользователем.
получается, что у пользователя уже стоит сервер, а вы ставите еще один? Кстати, вначале вопрос был про установку клиента и приложения, и в этот момент добавления пароля.
Написал DLL которая все проверяет и делает (что тоже не совсем правильно)
это как раз правильно для Inno Setup. Никаких других "изящных" методов для него нет.
если человек обратился за помощью то он обязательно глупее отвечающих?
так обратился же :-)

Matveih1
Сообщения: 41
Зарегистрирован: 11 дек 2007, 14:50

Re: Inno setup и FireBird

Сообщение Matveih1 » 27 янв 2011, 11:07

Обратился, не спорю. Вот как раз и проблема в том что у пользователя может уже стоять FB. Если не стоит то тут все просто. А если стоит то тогда мне уже ставить не надо, а надо только завести нужного пользователя. Звучит просто, но реализация не так проста.

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

Re: Inno setup и FireBird

Сообщение Dimitry Sibiryakov » 27 янв 2011, 14:50

"Обратился за помощью" - "не смог найти решения самостоятельно" - "глупее". Разве эта цепочка не очевидна?

Реализация проста. В две строчки:
Системные требования:
1) Установленный сервер Firebird версии Х.Х и выше
2) Зарегистрированный на этом сервере пользователь Имярек с паролем ХХХХХ
Заодно у устанавливающего твою поделку сисадмина будет повод поржать. Не надо ходить на ithappens или The Daily WTF.

Matveih1
Сообщения: 41
Зарегистрирован: 11 дек 2007, 14:50

Re: Inno setup и FireBird

Сообщение Matveih1 » 27 янв 2011, 15:35

Может это над твоими поделка ржут. И если ты привык решать проблемы за счет админов или кого то еще так как сам не в состоянии написать хороший SETUP то мне жаль твоих пользователей. Я написал что решение нашел сам, а от тебя только "предложения", а решений то нет. И предложения сводятся к тому что бы проблему решил кто то другой. А я не хочу скачивая программу, к ней скачивать что то еще. Шире надо думать!!!

checker
Сообщения: 16
Зарегистрирован: 09 авг 2005, 14:54

Re: Inno setup и FireBird

Сообщение checker » 27 янв 2011, 21:00

Привет.

В свое время я решал аналогичную задачу. После множества вариантов, я остановился на самом простом: из Setup запускаю свою утилитку, которая определяет версию сервера и запускает его gsec от имени sysdba с паролем по умолчанию и параметрами -add и -pw для добавления моего пользователя.

Соображения, почему делаю именно так следующие:
1) У меня есть пользователи, которые работают на FB 1.0.3. Для этой версии нет Services API, приходится использовать gsec.
2) Половина пользователей, у которых есть установленный FB не меняет пароль sysdba.
3) Спрашивать пароль sysdba в диалоге Setup бестолку, т.к. программу может устанавливать кто-угодно и, если это не сисадмин, знающий пароль sysdba, то такой вопрос скорее поставит пользователя в ступор, чем поможет.
4) Если сервера нет или нестандартный пароль sysdba, то нужного пользователя не будет и моя программа при соединении с БД выдаст ошибку. Вот тогда я отсылаю к readme с требованиями, в котором указано, что должен быть сервер FB и такой-то пользователь с таким-то паролем.
5) Как вариант, если мой пользователь не устраивает, то укажите в параметрах соединения с БД в моей программе своего пользователя со своим паролем.

Matveih1
Сообщения: 41
Зарегистрирован: 11 дек 2007, 14:50

Re: Inno setup и FireBird

Сообщение Matveih1 » 27 янв 2011, 21:44

checker писал(а): gsec от имени sysdba с паролем по умолчанию и параметрами -add и -pw для добавления моего пользователя.
Я так и делаю при условии что сервер не стоит и я его ставлю из SETUP с программой и потом добавляю пользователя.
Вся сложность с нестандартным паролем. Но то что такой вопрос может поставить пользователя в ступор -- это верно. Но с другой стороны если он не знает пароль SYSDBA то он по сути не сможет работать с программой т.к. он не сможет завести пользователя и т.д. И есть ли смысл тогда продолжать установку?
За ответ спасибо. Ответ хороший.

checker
Сообщения: 16
Зарегистрирован: 09 авг 2005, 14:54

Re: Inno setup и FireBird

Сообщение checker » 28 янв 2011, 08:30

Matveih1 писал(а):Но с другой стороны если он не знает пароль SYSDBA то он по сути не сможет работать с программой т.к. он не сможет завести пользователя и т.д. И есть ли смысл тогда продолжать установку?
Ну, я продолжаю. Программа то все равно запустится, а потом выдаст ошибку открытия БД со стандартным текстом "Your user name and password are not defined. Ask your database administrator to set up a Firebird login". А дальше в readme и в документации к программе (требование ГОСТ) есть пункт со списком возможных ошибок, в котором я и пишу, что раз такой текст, то "надо добавить учетную запись СУБД вручную, как это описано в пункте Установка системы..."

Matveih1
Сообщения: 41
Зарегистрирован: 11 дек 2007, 14:50

Re: Inno setup и FireBird

Сообщение Matveih1 » 28 янв 2011, 13:27

Согласен с тобой. Так и сделаю. Немного перемудрил с логикой SETUP. Хотя уже и работает. и пароль узнает и добавляет.
Ну ломать не строить.

checker
Сообщения: 16
Зарегистрирован: 09 авг 2005, 14:54

Re: Inno setup и FireBird

Сообщение checker » 28 янв 2011, 14:00

Matveih1 писал(а):Хотя уже и работает. и пароль узнает и добавляет.
Эээ... Ты сумел, не спрашивая пользователя, как-то получить текущий пароль SYSDBA? А, значит, сможешь и сделать это и для любого другого пользователя Firebird? Или все таки просишь ввести пароль SYSDBA руками?

Matveih1
Сообщения: 41
Зарегистрирован: 11 дек 2007, 14:50

Re: Inno setup и FireBird

Сообщение Matveih1 » 31 янв 2011, 12:23

Спрашивал у пользователя и проверял. Но теперь от этого отказался. Хотя со временем может и вернусь

Ответить