Страница 1 из 1

Inno setup и FireBird

Добавлено: 25 янв 2011, 10:09
Matveih1
Добрый день.

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

Re: Inno setup и FireBird

Добавлено: 25 янв 2011, 14:50
Dimitry Sibiryakov
Лично я никогда с такой проблемой не сталкивался, поскольку наличие и версия FB у клиента гарантируются одной строчкой в системных требованиях моего приложения.

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

Re: Inno setup и FireBird

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

Re: Inno setup и FireBird

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

Re: Inno setup и FireBird

Добавлено: 25 янв 2011, 17:33
Matveih1
Исследовал, но там нет проверки пароля и пользователя. Там только запущена служба или нет. И если нет то накатывает сервер и все. Тут немного не так желательно.

Re: Inno setup и FireBird

Добавлено: 25 янв 2011, 21:33
kdv
то есть, вам желательно разжевать и в рот положить?

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

Re: Inno setup и FireBird

Добавлено: 26 янв 2011, 14:48
Dimitry Sibiryakov
Ну, типа сначала надо поставить Windows. Но эту задачу он, по всей видимости, уже решил.

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

Re: Inno setup и FireBird

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

Re: Inno setup и FireBird

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

Re: Inno setup и FireBird

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

Re: Inno setup и FireBird

Добавлено: 27 янв 2011, 14:50
Dimitry Sibiryakov
"Обратился за помощью" - "не смог найти решения самостоятельно" - "глупее". Разве эта цепочка не очевидна?

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

Re: Inno setup и FireBird

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

Re: Inno setup и FireBird

Добавлено: 27 янв 2011, 21:00
checker
Привет.

В свое время я решал аналогичную задачу. После множества вариантов, я остановился на самом простом: из 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) Как вариант, если мой пользователь не устраивает, то укажите в параметрах соединения с БД в моей программе своего пользователя со своим паролем.

Re: Inno setup и FireBird

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

Re: Inno setup и FireBird

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

Re: Inno setup и FireBird

Добавлено: 28 янв 2011, 13:27
Matveih1
Согласен с тобой. Так и сделаю. Немного перемудрил с логикой SETUP. Хотя уже и работает. и пароль узнает и добавляет.
Ну ломать не строить.

Re: Inno setup и FireBird

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

Re: Inno setup и FireBird

Добавлено: 31 янв 2011, 12:23
Matveih1
Спрашивал у пользователя и проверял. Но теперь от этого отказался. Хотя со временем может и вернусь