Вопрос

Как создать пул подключений к базе данных в PowerBuilder (v9+) с помощью...

  • ...ODBC?
  • ...SQL-сервер?
  • ...Оракул?
Это было полезно?

Решение

К сожалению, по крайней мере с PB 9 нельзя изначально.PB всегда был двухуровневым инструментом разработки.Однако если вы используете поддержку WebServices, которая появилась в PB 9, вы можете обойти это ограничение, вызвав WebServices на сервере приложений из пула соединений.Я еще не играл с PB 11.5, кстати.Там может быть по-другому.

Джейсон

Другие советы

Несмотря на риск саморекламы, они могут помочь вам начать работу в Oracle:

Если вы пойдете в Руководства по Sybase (интуитивно, да?), перейдите к руководству по подключению к вашей базе данных для той версии, которую вы просматриваете, поиск по слову «пул» может быть продуктивным.Глядя на мою локальную копию версии 11.5, я вижу ссылки на SNC (MS) и ODBC.

Что касается «неродных» подходов, я предполагаю, что Джейсон мог иметь в виду объединение пулов соединений с сервером приложений, а затем передачу через него ваших данных.

Удачи.

Используя PowerBuilder версии 9 и выше, используя собственный драйвер Oracle и подключаясь к базам данных Oracle 9i и более поздних версий, вы можете указать Oracle поддерживать соединения в пуле с помощью CnnPool = 'Да' параметр базы данных:

Дополнительная информация из документации PB 11.1:http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.dc33820_1110/html/dbparm/BJEBJADI.htm

я не верю в это

CnnPool = 'Да'

был поддержан официально в ПБ 9.

Я не уверен, что большинство разработчиков PB хорошо знакомы с тем, как обращаться с пулами.

Подход ASP.Net прост и понятен, по крайней мере, по сравнению с моим опытом работы с некоторыми серверами приложений Java.(Пожалуйста, не разжигайте пламенную войну из-за последнего предложения, я рассказал о своем опыте).

Я написал «серверное» приложение, которое получало хранилища данных PB, которые выполнялись для ds.retrieve() и ds.update(), и передало данные обратно клиентскому приложению PB.Это был способ объединиться.Серверное приложение откроет несколько соединений...Я сделал это в PB 8 (где-то есть книга).Я бы не советовал такой подход...много кода.

В PB 11.x есть несколько интересных новых подходов, которые вам следует рассмотреть.

@Джейсон Фогель...

Ты сказал, что я не могу сделать изначально ...так есть альтернативный способ сделать это?

/* Объявить как переменную экземпляра*/

n_to_server i_to_server //Объект транзакции, альтернатива SQLCA, i_to_server — это пользовательское имя, как и n_to_server

/* Создать объект соединения*/

i_to_server = Create Transaction // была объявлена ​​в переменных экземпляра от n_to_server

i_to_server.DBMS = "ODBC"

i_to_server.AutoCommit = ИСТИНА

i_to_server.DBParm = "ConnectString='DSN=SourceServer;UID=имя пользователя;PWD=пароль'"

ПОДКЛЮЧИТЬСЯ С ИСПОЛЬЗОВАНИЕМ i_to_server ;

ВЫБЕРИТЕ @@trancount INTO :li_TranCount

ИЗ системных объектов

ГДЕ имя = 'sysobjects'

ИСПОЛЬЗОВАНИЕ i_to_server ;//Должен быть USING в транзакциях, которые не используют SQLCA (собственная транзакция)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top