ИНФОРМАЦИЯ: Как включить группировки подключений в приложении ODBC

Переводы статьи Переводы статьи
Код статьи: 164221
Развернуть все | Свернуть все

Аннотация

В данной статье описывается включение в приложении ODBC пула подключений.

Дополнительная информация

Microsoft ODBC версии 3.0 введена концепция пула подключений.
Группировка подключений позволяет приложению ODBC многократно использовать существующий
подключение из пула, так, что приложение ODBC для перехода
в процессе завершения подключения для всех последующих подключений.

Когда приложение ODBC отключается подключение, подключение будет сохранен
в пул вместо фактического отключен. Как долго остается подключения
в группе зависит от свойства CPTimeout драйвера ODBC. Когда
тайм-аута, подключение закрывается и удаляется из пула. ODBC
для изменения значения CPTimeout и это приложение можно использовать SQLConfigDriver
значение применяется ко всем приложениям ODBC, которые используют указанный драйвер ODBC.

Значение по умолчанию CPTimeout составляет 60 секунд.Организация пула подключений — это очень полезно, когда приложение ODBC, такие как Microsoft Internet
Данные сервера (например) подключение и отключение часто. microsoft
Internet Information Server (IIS) версии 3.0 с помощью Active Server Pages (ASP)
преимущества пула подключений. Можно включить для группировки подключений
Пользователи службы IIS, изменив значениеStartConnectionPool1.StartConnectionPoolможно найти в разделе:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\W3SVC\ASP\Parameters
Приложения ODBC позволяет SQLSetEnvAttr активизировать пулы подключений. Ниже приведен пример применения пулов подключений, в приложении ODBC.
   #include <windows.h>
   #include <stdio.h>
   #include <sql.h>
   #include <sqlext.h>

   void main()
   {
   SQLHENV   henv;
   SQLHDBC   hdbc;
   int       i=0;

   if (!SQL_SUCCEEDED(SQLSetEnvAttr(
      NULL,  // make process level cursor pooling
      SQL_ATTR_CONNECTION_POOLING,
      (SQLPOINTER)SQL_CP_ONE_PER_DRIVER,
      SQL_IS_INTEGER)))
   printf("SQLSetEnvAttr/SQL_ATTR_CONNECTION_POOLING error\n");

   if (!SQL_SUCCEEDED(SQLAllocHandle(SQL_HANDLE_ENV, NULL, &henv)))
      printf("SQLAllocHandle error\n");

   // set the ODBC behavior version.
   if (!SQL_SUCCEEDED(SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION,
   (SQLPOINTER) SQL_OV_ODBC2, SQL_IS_INTEGER)))
      printf("SQLSetEnvAttr/SQL_ATTR_ODBC_VERSION error\n");

   //set the matching condition for using an existing connection in the
   pool
   if (!SQL_SUCCEEDED(SQLSetEnvAttr(henv, SQL_ATTR_CP_MATCH,
   (SQLPOINTER) SQL_CP_RELAXED_MATCH, SQL_IS_INTEGER)))
   printf("SQLSetEnvAttr/SQL_ATTR_CP_MATCH error\n");

while (i < 10) {
   if (!SQL_SUCCEEDED(SQLAllocHandle(SQL_HANDLE_DBC,
      henv, &hdbc)))
      printf("SQLAllocHandle error\n");
      if (!SQL_SUCCEEDED(SQLConnect(hdbc,
   (unsigned char*)"testing\0", SQL_NTS,
      (unsigned char*)"sa\0", SQL_NTS,
   (unsigned char*)"\0", SQL_NTS)))
      printf("SQLConnect error\n");
   else
      printf("Connect successfully %d times\n", i);
   //the first time, the application calls SQLDisconenct, it will return
                 //the connection to the //pool
   SQLDisconnect(hdbc);

   if (!SQL_SUCCEEDED(SQLFreeHandle(SQL_HANDLE_DBC, hdbc)))
      printf("SQLFreeHandle error\n");
   i++;
   }
   SQLFreeHandle(SQL_HANDLE_ENV, henv);
   }
				
При вызове приложением ODBCSQLDisconnectпервый раз, сохранить подключение в пул. Все последующие SQLConnect/SQLDisconnect, соответствующих условию, необходимо будет повторно использовать первое подключение.

Свойства

Код статьи: 164221 - Последний отзыв: 14 ноября 2010 г. - Revision: 2.0
Ключевые слова: 
kbinfo kbprogramming kbmt KB164221 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:164221
Заявление об отказе относительно содержимого статьи о продуктах, поддержка которых прекращена
Эта статья содержит сведения о продуктах, поддержка которых корпорацией Майкрософт прекращена. Поэтому она предлагается как есть и обновляться не будет.

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com