2016-10-20 5 views
0

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

Вопрос в том, следует ли использовать беспроблемное соединение, чтобы оно работало? Или, может быть, сообщить целевому ПК о необходимой конфигурации ODBC? Если да - как это сделать?

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

Буду признателен за вашу помощь.

Kris.

+0

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

+0

К какой базе данных вы подключаетесь? Если это Microsoft SQL Server, то раньше вам нужно было установить Rational Runtime SQL Server. Больше информации здесь: http://slapouttech.blogspot.com/2012/04/powerbuilder-and-sql-server-tips-on.html – Slapout

+0

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

ответ

0

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

0

С тех пор как вы сказали, что запутались в реестре odbc.ini &, давайте начнем с этого момента.

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

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

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

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

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