Есть ли способ подключиться к базе данных ASA с помощью Powerbuilder без развертывания драйверов ODBC или OLEDB?

Что мне нужно, так это приложение Powerbuilder, работающее в Windows, которое запускается с компакт-диска (или какого-либо другого внешнего диска), которое может считывать данные из базы данных ASA, файл которой находится на том же диске. Но я хочу сделать это без развертывания драйверов ODBC или OLEDB. То есть я не хочу копировать файлы драйверов на жесткий диск клиента или добавлять какие-то записи в реестр. Это возможно?

В документации Powerbuilder и ASA упоминается что-то о «встроенных подключениях к базе данных», и предположительно вы можете указать исполняемый файл для сервера базы данных в строке подключения. Но это не помогло.


person YWE    schedule 25.08.2010    source источник


Ответы (3)


Когда вы пытаетесь подключиться к базе данных и для свойства СУБД объекта транзакции указано «ODBC», PowerBuilder захочет начать загрузку драйверов и искать информацию о драйвере в источнике данных ODBC.

Единственное, что я могу попробовать, это создать все записи реестра во время выполнения и указать их на файлы драйвера и файл .db на компакт-диске. Возможно, вы сможете упростить задачу с помощью файлового источника данных на компакт-диске, но вам все равно потребуется создать записи реестра для настройки сведений о драйвере. Затем вы можете удалить все эти записи при отключении/закрытии приложения. Я не думаю, что вы можете сделать это полностью без записей в реестре.

person Mike    schedule 25.08.2010

Вам нужно развернуть драйвер ODBC, так PB общается с SQL Anywhere. Вам не нужно создавать запись DNS, вы можете использовать подключение без DNS.

http://www.carlprothman.net/Default.aspx?tabid=90#ODBCDriverForSybaseSQLAnywhere

person Bruce Armstrong    schedule 10.10.2010

Поскольку вы не получаете много отзывов, я решил предложить это. Я сделал это с помощью MS Access, но к MS Access гораздо проще подключиться, и большинство ПК с Windows могут подключаться через DSN на основе файлов.

Вы определенно хотите избежать ODBC, если это вообще возможно, ищите DSN на основе файлов в ASA, но, поскольку это скорее полноценный механизм базы данных, я сомневаюсь, что это возможно без ODBC, и настройка ODBC через записи реестра возможна, но это совсем не весело, особенно если ваши клиенты работают под управлением разных версий Windows.

Вот строка подключения, которую я использовал для чего-то похожего, но для MS Access. Я выбираю Access именно по этой причине, это была программа RPG, и мне нужна была база данных, но я не хотел связываться с ODBC.

Образец:

"Connectstring='Driver={Драйвер Microsoft Access (*.mdb)};UID=abc;PWD=123; Dbq=C:\Program Files\Mafia Manager\mm.mdb; Exclusive=1;'"

person Rich Bianco    schedule 08.10.2010
comment
Спасибо. Я только что попытался адаптировать эту строку подключения. Не работает. - person YWE; 08.10.2010
comment
Если вы привязаны к ASA, то решение, вероятно, будет относительно сложным. Если вы изучите, как работает ODBC (это не весело), ​​в частности, записи реестра для настройки реальных драйверов, а затем различные записи реестра для создания DSN, вы можете заставить его работать с помощью кода или программы установки. Я бы попытался найти программу установки, которая просматривает вашу машину до и после установки драйверов и настройки DSN и создает дельту, которую вы используете в качестве основы для того, что нужно сделать. Не то, что вы искали, но я тоже был на этом пути и сочувствую вам. - person Rich Bianco; 09.10.2010