Пул соединений с базой данных PowerBuilder?Как
-
02-07-2019 - |
Вопрос
Как создать пул подключений к базе данных в 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 (собственная транзакция)