INFO: Como activar o agrupamento de ligações numa aplicação ODBC

Traduções de Artigos Traduções de Artigos
Artigo: 164221 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Sumário

Este artigo descreve como activar o agrupamento de ligações numa aplicação de ODBC.

Mais Informação

Microsoft ODBC versão 3.0 introduziu o conceito de agrupamento de ligações.
Agrupamento de ligações permite uma aplicação de ODBC para reutilizar um existente
ligação de um grupo, para a aplicação de ODBC não tenha avançar
o processo de ligação completa para qualquer ligação subsequente.

Quando uma aplicação ODBC desliga uma ligação, a ligação é guardada
para um conjunto em vez de, na realidade, desligada. Quanto esta ligação permanece
no conjunto depende a propriedade CPTimeout do controlador de ODBC. Quando o
tempo limite expira, a ligação é fechada e removida do conjunto. O ODBC
aplicação pode utilizar SQLConfigDriver para alterar o valor de CPTimeout e isto
valor aplica-se a todas as aplicações de ODBC que estiverem a utilizar o controlador ODBC especificado.

O valor predefinido para o CPTimeout é 60 segundos. Agrupamento de ligações é muito útil quando uma aplicação ODBC como o Microsoft Internet
Servidor de informações (por exemplo) liga e desliga frequentemente. Microsoft
Internet Information Server (IIS) versão 3.0 com ASP (Active Server Pages)
tira partido do agrupamento de ligações. Pode activar o pooling de conexões para
Utilizadores IIS alterando o valor de StartConnectionPool para 1. StartConnectionPool está localizado em:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\W3SVC\ASP\Parameters
Uma aplicação ODBC pode utilizar SQLSetEnvAttr para activar o agrupamento de ligações. Segue-se um exemplo de como activar o agrupamento de ligações numa aplicação de 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);
   }
				
aplicação ODBC a quando chama SQLDisconnect pela primeira vez, a ligação é guardada ao conjunto. Qualquer subsequente SQLConnect/SQLDisconnect que corresponda a condição necessária reutilizar a primeira ligação.

Propriedades

Artigo: 164221 - Última revisão: 7 de julho de 2000 - Revisão: 1.0
A informação contida neste artigo aplica-se a:
  • Microsoft Open Database Connectivity 3.0
Palavras-chave: 
kbmt kbinfo kbprogramming KB164221 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 164221
Exclusão de Responsabilidade para Conteúdo sem Suporte na KB
Este artigo foi escrito sobre produtos para os quais a Microsoft já não fornece suporte. Por conseguinte, este artigo é oferecido "tal como está" e deixará de ser actualizado.

Submeter comentários

 

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