Как развернуть приложение Powerbuilder с подключением ODBC?

#connection #odbc #powerbuilder

#подключение #odbc #powerbuilder

Вопрос:

мое приложение отлично работает на компьютере, на котором я его создал, но на других компьютерах отображается ошибка: «Транзакция не подключена». Я установил пакет, созданный Runtime Packager, и добавил пару DLL-файлов в путь к приложению на целевой машине. Все та же проблема.

Мой вопрос в том, должен ли я использовать подключение без dnsl для его работы? Или, может быть, проинформировать целевой КОМПЬЮТЕР о требуемой конфигурации ODBC? Если да — как это сделать?

Я много читал об odbc.ini, системных переменных, записях реестра и т.д. Но теперь я все перепутал и понятия не имею, что делать.

Я буду очень благодарен за вашу помощь.

Крис.

Комментарии:

1. Вы создали экземпляр объекта транзакции (SQLCA), установили параметры подключения, а затем подключились к нему?

2. К какому типу базы данных вы подключаетесь? Если это Microsoft SQL Server, раньше считалось, что вам нужно установить встроенную среду выполнения SQL Server. Дополнительная информация здесь: slapouttech.blogspot.com/2012/04 /…

3. @MattBalent: Да, я все это сделал, это хорошо работает на моем компьютере. Я повторно загружаю данные из базы данных Oracle (два разных сервера). В настоящее время я пытаюсь добавить соответствующие записи реестра на клиентском компьютере, чтобы сообщить ему об источниках ODBC. Проблема в том, что я не могу найти соответствующую запись на своем компьютере, чтобы экспортировать ее и импортировать на клиент. Я бы ожидал увидеть запись с IP-номером и именем базы данных. Я не вижу этой информации в ODBC. INI в реестре.

4. Мне просто интересно — нужно ли мне устанавливать драйверы Oracle ODBC на клиентский компьютер, чтобы включить подключение ODBC?

5. Я ожидаю, что вам придется установить драйверы на клиенте.

Ответ №1:

Лично я использую DSN. Итак, единственное, что знает PowerBuilder, — это имя DSN. На этой основе я устанавливаю соединение.
На целевом компьютере я настраиваю ODBC с тем же именем DSN и необходимыми драйверами. Таким образом, вы получаете некоторую гибкость в развертывании. Например, я могу разработать, используя DSN ‘db’, ссылаясь на компьютере моего разработчика на базу данных ‘dev’ или сервер ‘server_dev’ и развернуть на целевой машине, где ‘db’ ссылается на базу данных ‘prod’ на сервере ‘productionServ’.
Помимо проблем с совместимостью, может даже случиться так, что первым является MySQL, а другим — Oracle.
В любом случае крайне важно установить драйверы, позволяющие получить доступ к нужной базе данных на целевой машине, и, если вы используете DSN, настроить ее.

Ответ №2:

Поскольку вы сказали, что перепутали odbc.ini и registry, давайте начнем оттуда.

Предполагая, что требуемое подключение ODBC настроено на вашем компьютере (как вы сказали),

  • Откройте редактор реестра (Win R, regedit) на вашем компьютере.
  • Перейдите по пути «HKEY_CURRENT_USERSOFTWARE ODBC ODBC.INI». Примечание: «HKEY_LOCAL_MACHINE» может использоваться для многопользовательских компьютеров.
  • Щелкните правой кнопкой мыши на вашем «Подключении ODBC» и экспортируйте. Сохраните файл (*.reg). (открытие этого файла в блокноте даст вам некоторые идеи о том, как его настроить.)
  • Также сделайте то же самое для «HKEY_CURRENT_USER SOFTWARE ODBC ODBC.INI Источники данных ODBC «. Объедините оба файла в один (откройте файлы *.reg в блокноте и объедините текст).

Теперь у вас есть следующие параметры для настройки ODBC на ваших целевых компьютерах:

  1. Этот файл (*.reg) может быть выполнен на целевой машине (будьте осторожны, путь к драйверам может отличаться на целевых машинах.).
  2. Если у вас есть программа установки, попробуйте включить код для записи значений реестра из программы установки.
  3. Используйте PB-функцию RegistrySet() для создания собственного ODBC-соединения, если оно НЕ существует.

Краткое описание того, что мы пытаемся: Экспортировать записи реестра (в виде файла *.reg) с компьютера разработчика и создать аналогичные записи реестра на целевых компьютерах, используя любой из 3 методов, перечисленных выше.