SQLSetConnectAttr

Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure PDW (Sistema de Plataforma de Análise) do Azure Synapse Analytics

O driver ODBC do SQL Server Native Client ignora a configuração de SQL_ATTR_CONNECTION_TIMEOUT.

SQL_ATTR_TRANSLATE_LIB também é ignorado; não há suporte para a especificação de outra biblioteca de conversão. Para permitir que os aplicativos sejam facilmente portados para usar um driver ODBC da Microsoft para SQL Server, qualquer valor definido com SQL_ATTR_TRANSLATE_LIB será copiado para dentro e para fora de um buffer no Gerenciador de Driver.

O driver ODBC do SQL Server Native Client implementa o isolamento de transação de leitura repetível como serializável.

O SQL Server 2005 (9.x) introduziu suporte para um novo atributo de isolamento de transação, SQL_COPT_SS_TXN_ISOLATION. Configurar SQL_COPT_SS_TXN_ISOLATION como SQL_TXN_SS_SNAPSHOT indica que a transação ocorrerá no nível de isolamento do instantâneo.

Observação

SQL_ATTR_TXN_ISOLATION pode ser usado para definir todos os outros níveis de isolamento, com exceção de SQL_TXN_SS_SNAPSHOT. Se quiser usar isolamento do instantâneo, deverá definir SQL_TXN_SS_SNAPSHOT através de SQL_COPT_SS_TXN_ISOLATION. Porém, você pode recuperar o nível de isolamento usando SQL_ATTR_TXN_ISOLATION ou SQL_COPT_SS_TXN_ISOLATION.

A promoção de atributos de instrução ODBC a atributos de conexão pode ter consequências não intencionais. Os atributos de instrução que solicitam cursores de servidor para processamento de conjuntos de resultados podem ser promovidos a conexões. Por exemplo, configurar o atributo de instrução ODBC SQL_ATTR_CONCURRENCY para um valor mais restritivo que o padrão SQL_CONCUR_READ_ONLY orienta o servidor a usar cursores dinâmicos para todas as instruções enviadas na conexão. Executar uma função de catálogo ODBC em uma instrução na conexão retorna SQL_SUCCESS_WITH_INFO e um registro de diagnóstico que indica que o comportamento do cursor foi alterado para somente leitura. A tentativa de executar uma instrução SELECT do Transact-SQL contendo uma cláusula COMPUTE na mesma conexão causa uma falha.

O driver ODBC do SQL Server Native Client dá suporte a várias extensões específicas do driver para atributos de conexão ODBC definidos em sqlncli.h. O driver ODBC do SQL Server Native Client pode exigir que o atributo seja definido antes da conexão ou pode ignorar o atributo se ele já estiver definido. A seguinte tabela apresenta as restrições.

Atributo do SQL Server Defina antes ou depois da conexão com o servidor
SQL_COPT_SS_ANSI_NPW Antes
SQL_COPT_SS_APPLICATION_INTENT Antes
SQL_COPT_SS_ATTACHDBFILENAME Antes
SQL_COPT_SS_BCP Antes
SQL_COPT_SS_BROWSE_CONNECT Antes
SQL_COPT_SS_BROWSE_SERVER Antes
SQL_COPT_SS_CONCAT_NULL Antes
SQL_COPT_SS_CONNECTION_DEAD Após
SQL_COPT_SS_ENCRYPT Antes
SQL_COPT_SS_ENLIST_IN_DTC Após
SQL_COPT_SS_ENLIST_IN_XA Após
SQL_COPT_SS_FALLBACK_CONNECT Antes
SQL_COPT_SS_FAILOVER_PARTNER Antes
SQL_COPT_SS_INTEGRATED_SECURITY Antes
SQL_COPT_SS_MARS_ENABLED Antes
SQL_COPT_SS_MULTISUBNET_FAILOVER Antes
SQL_COPT_SS_OLDPWD Antes
SQL_COPT_SS_PERF_DATA Após
SQL_COPT_SS_PERF_DATA_LOG Após
SQL_COPT_SS_PERF_DATA_LOG_NOW Após
SQL_COPT_SS_PERF_QUERY Após
SQL_COPT_SS_PERF_QUERY_INTERVAL Após
SQL_COPT_SS_PERF_QUERY_LOG Após
SQL_COPT_SS_PRESERVE_CURSORS Antes
SQL_COPT_SS_QUOTED_IDENT Você pode usar o
SQL_COPT_SS_TRANSLATE Você pode usar o
SQL_COPT_SS_TRUST_SERVER_CERTIFICATE Antes
SQL_COPT_SS_TXN_ISOLATION Você pode usar o
SQL_COPT_SS_USE_PROC_FOR_PREP Você pode usar o
SQL_COPT_SS_USER_DATA Você pode usar o
SQL_COPT_SS_WARN_ON_CP_ERROR Antes

O uso de um atributo de pré-conexão e o comando Transact-SQL equivalente para a mesma sessão, banco de dados ou estado do SQL Server pode produzir um comportamento inesperado. Por exemplo,

SQLSetConnectAttr(SQL_COPT_SS_QUOTED_IDENT, SQL_QI_ON) // turn ON via attribute  
SQLDriverConnect(...);  
SQLExecDirect("SET QUOTED_IDENTIFIER OFF") // turn OFF via Transact-SQL  
SQLSetConnectAttr(SQL_ATTR_CURRENT_CATALOG, ...) // restores to pre-connect attribute value  

SQL_COPT_SS_ANSI_NPW

SQL_COPT_SS_ANSI_NPW habilita ou desabilita o uso de manuseio ISO de NULL em comparações e concatenação, preenchimento do tipo de dados caractere e advertências. Para obter mais informações, consulte SET ANSI_NULLS, SET ANSI_PADDING, SET ANSI_WARNINGS e SET CONCAT_NULL_YIELDS_NULL.

Valor Descrição
SQL_AD_ON Padrão. A conexão usa comportamento padrão do ANSI para manusear comparações de NULL, preenchimento, advertências e concatenações de NULL.
SQL_AD_OFF A conexão usa o tratamento definido pelo SQL Server de NULL, preenchimento de tipo de dados de caractere e avisos.

Se você usar o pool de conexões, SQL_COPT_SS_ANSI_NPW deverá ser definido na cadeia de conexão, em vez de SQLSetConnectAttr. Depois que uma conexão for estabelecida, qualquer tentativa para alterar esse atributo falhará em modo silencioso quando o pool de conexões for usado.

SQL_COPT_SS_APPLICATION_INTENT

Declara o tipo de carga de trabalho de aplicativo ao conectar-se a um servidor. Os valores possíveis são Readonly e ReadWrite. Por exemplo:

SQLSetConnectAttr(hdbc, SQL_COPT_SS_APPLICATION_INTENT, TEXT("Readonly"), SQL_NTS)  

O padrão é ReadWrite. Para obter mais informações sobre o suporte do SQL Server Native Client para AGs de grupos de disponibilidade Always On, consulte Suporte do SQL Server Native Client para alta disponibilidade, recuperação de desastre.

SQL_COPT_SS_ATTACHDBFILENAME

SQL_COPT_SS_ATTACHDBFILENAME especifica o nome do arquivo primário de um banco de dados anexável. Esse banco de dados é anexado e torna-se o banco de dados padrão da conexão. Para usar SQL_COPT_SS_ATTACHDBFILENAME você deve especificar o nome do banco de dados como o valor do atributo de conexão SQL_ATTR_CURRENT_CATALOG ou no parâmetro DATABASE = de um SQLDriverConnect. Se o banco de dados tiver sido anexado anteriormente, o SQL Server não o reanexará.

Valor Descrição
SQLPOINTER para uma cadeia de caracteres A cadeia de caracteres contém o nome do arquivo primário para o banco de dados se anexar. Inclua o caminho completo do nome do arquivo.

SQL_COPT_SS_BCP

SQL_COPT_SS_BCP habilita funções de cópia em massa em uma conexão. Para obter mais informações, consulte Funções de cópia em massa.

Valor Descrição
SQL_BCP_OFF Padrão. Funções de cópia em massa não estão disponíveis na conexão.
SQL_BCP_ON Funções de cópia em massa estão disponíveis na conexão.

SQL_COPT_SS_BROWSE_CONNECT

Esse atributo é usado para personalizar o conjunto de resultados retornado pelo SQLBrowseConnect. SQL_COPT_SS_BROWSE_CONNECT habilita ou desabilita o retorno de informações adicionais de uma instância enumerada do SQL Server. Isto pode incluir informações como se o servidor é um cluster, nomes de instâncias diferentes e o número de versão.

Valor Descrição
SQL_MORE_INFO_NO Padrão. Retorna uma lista de servidores.
SQL_MORE_INFO_YES SQLBrowseConnect retorna uma cadeia de caracteres estendida de propriedades do servidor.

SQL_COPT_SS_BROWSE_SERVER

Esse atributo é usado para personalizar o conjunto de resultados retornado pelo SQLBrowseConnect. SQL_COPT_SS_BROWSE_SERVER especifica o nome do servidor para o qual SQLBrowseConnect retorna as informações.

Valor Descrição
computername SQLBrowseConnect retorna uma lista de instâncias do SQL Server no computador especificado. Barras invertidas duplas (\\) não devem ser usadas para o nome do servidor (por exemplo, em vez de \\MyServer, MyServer deve ser usado).
NULO Padrão. SQLBrowseConnect retorna informações para todos os servidores no domínio.

SQL_COPT_SS_CONCAT_NULL

SQL_COPT_SS_CONCAT_NULL habilita ou desabilita o uso de manuseio ISO de NULL ao concatenar cadeias. Para saber mais, confira SET CONCAT_NULL_YIELDS_NULL.

Valor Descrição
SQL_CN_ON Padrão. A conexão usa o comportamento padrão ISO para manusear valores NULL ao concatenar cadeias.
SQL_CN_OFF A conexão usa o comportamento definido pelo SQL Server para lidar com valores NULL ao concatenar cadeias de caracteres.

SQL_COPT_SS_ENCRYPT

Controla a criptografia de uma conexão.

A criptografia usa o certificado no servidor. Isto deve ser verificado por uma autoridade de certificação, a menos que o atributo da conexão SQL_COPT_SS_TRUST_SERVER_CERTIFICATE seja definido como SQL_TRUST_SERVER_CERTIFICATE_YES ou a cadeia de conexão contenha "TrustServerCertificate=yes". Se qualquer uma destas condições for verdadeira, um certificado gerado e assinado pelo servidor poderá ser usado para criptografar a conexão se não houver nenhum certificado no servidor.

Valor Descrição
SQL_EN_ON A conexão será criptografada.
SQL_EN_OFF A conexão não será criptografada. Esse é o padrão.

SQL_COPT_SS_ENLIST_IN_DTC

O cliente chama o método OLE DB ITransactionDispenser::BeginTransaction do Microsoft Distributed Transaction Coordinator (MS DTC) para iniciar uma transação MS DTC e criar um objeto de transação MS DTC que represente a transação. Em seguida, o aplicativo chama SQLSetConnectAttr com a opção SQL_COPT_SS_ENLIST_IN_DTC para associar o objeto de transação à conexão ODBC. Todas as atividades de banco de dados relacionadas serão executadas sob a proteção da transação do MS DTC. O aplicativo chama SQLSetConnectAttr com SQL_DTC_DONE para encerrar a associação DTC da conexão.

Valor Descrição
Objeto DTC* O objeto de transação MS DTC OLE que especifica a transação a ser exportada para o SQL Server.
SQL_DTC_DONE Delimita o término de uma transação de DTC.

SQL_COPT_SS_ENLIST_IN_XA

Para iniciar uma transação XA com um TP (Processador de Transações) compatível com XA, o cliente chama a função Open Group tx_begin . Em seguida, o aplicativo chama SQLSetConnectAttr com um parâmetro SQL_COPT_SS_ENLIST_IN_XA de TRUE para associar a transação XA à conexão ODBC. Todas as atividades de banco de dados relacionadas serão executadas sob a proteção da transação XA. Para encerrar uma associação XA com uma conexão ODBC, o cliente deve chamar SQLSetConnectAttr com um parâmetro SQL_COPT_SS_ENLIST_IN_XA de FALSE. Para obter mais informações, consulte a documentação do Coordenador de Transações Distribuídas da Microsoft.

SQL_COPT_SS_FALLBACK_CONNECT

Não há mais suporte para este atributo.

SQL_COPT_SS_FAILOVER_PARTNER

Usado para especificar ou recuperar o nome do parceiro de failover usado para espelhamento de banco de dados no SQL Server e é uma cadeia de caracteres terminada em nulo que deve ser definida antes que a conexão com o SQL Server seja feita inicialmente.

Depois de fazer a conexão, o aplicativo pode consultar esse atributo usando SQLGetConnectAttr para determinar a identidade do parceiro de failover. Se o servidor primário não tiver nenhum parceiro de failover, esta propriedade retornará uma cadeia de caracteres vazia. Isto permite que um aplicativo inteligente armazene em cache o servidor de backup determinado mais recentemente, mas tais aplicativos devem estar cientes de que as informações serão atualizadas somente depois que a conexão for estabelecida ou redefinida, se estiver em pool, e poderão ficar desatualizadas em conexões de longo prazo.

Para obter mais informações, confira Usando o espelhamento de banco de dados.

SQL_COPT_SS_INTEGRATED_SECURITY

SQL_COPT_SS_INTEGRATED_SECURITY força o uso da autenticação do Windows para validação de acesso no logon do servidor. Quando a Autenticação do Windows é usada, o driver ignora os valores de identificador de usuário e senha fornecidos como parte do processamento SQLConnect, SQLDriverConnect ou SQLBrowseConnect.

Valor Descrição
SQL_IS_OFF Padrão. A autenticação do SQL Server é usada para validar o identificador de usuário e a senha no logon.
SQL_IS_ON O Modo de Autenticação do Windows é usado para validar os direitos de acesso de um usuário ao SQL Server.

SQL_COPT_SS_MARS_ENABLED

Este atributo habilita ou desabilita MARS (Vários Conjuntos de Resultados Ativos). Por padrão, MARS está desabilitado. Esse atributo deve ser definido antes de fazer uma conexão com o SQL Server. Depois que a conexão SQL Server for aberta, o MARS permanecerá habilitado ou desabilitado durante a vida útil da conexão.

Valor Descrição
SQL_MARS_ENABLED_NO Padrão. MARS está desabilitado.
SQL_MARS_ENABLED_YES O MARS está habilitado.

Para obter mais informações sobre o MARS, consulte Usando vários conjuntos de resultados ativos (MARS).

SQL_COPT_SS_MULTISUBNET_FAILOVER

Se o aplicativo estiver se conectando a um AG (grupo de disponibilidade) de grupos de disponibilidade Always On em sub-redes diferentes, essa propriedade de conexão configurará o SQL Server Native Client para fornecer detecção e conexão mais rápidas com o servidor (atualmente) ativo. Por exemplo:

SQLSetConnectAttr(hdbc, SQL_COPT_SS_MULTISUBNET_FAILOVER, SQL_IS_ON, SQL_IS_INTEGER)  

Para obter mais informações sobre o suporte do SQL Server Native Client para AGs de grupos de disponibilidade Always On, consulte Suporte do SQL Server Native Client para alta disponibilidade, recuperação de desastre.

Valor Descrição
SQL_IS_ON O SQL Server Native Client fornece uma reconexão mais rápida se houver um failover.
SQL_IS_OFF O SQL Server Native Client não fornecerá uma reconexão mais rápida se houver um failover.

SQL_COPT_SS_OLDPWD

A expiração de senha para a Autenticação do SQL Server foi introduzida no SQL Server 2005 (9.x). O atributo SQL_COPT_SS_OLDPWD foi adicionado para permitir que o cliente forneça tanto a senha antiga quanto a nova para a conexão. Quando essa propriedade estiver definida, o provedor não usará o pool de conexões na primeira conexão nem nas conexões seguintes, já que a cadeia de conexão conterá a "senha antiga", que agora foi alterada.

Confira mais informações em Alterar senhas programaticamente.

Valor Descrição
SQL_COPT_SS_OLD_PASSWORD SQLPOINTER para uma cadeia de caracteres que contém a senha antiga. Este é um valor somente gravação e deve ser definido antes da conexão ao servidor.

SQL_COPT_SS_PERF_DATA

SQL_COPT_SS_PERF_DATA inicia ou para log de dados de desempenho. O nome do arquivo de log de dados deve ser definido antes de iniciar o log de dados. Consulte SQL_COPT_SS_PERF_DATA_LOG, a seguir.

Valor Descrição
SQL_PERF_START Inicia o driver de amostragem de dados de desempenho.
SQL_PERF_STOP Para a amostragem de dados de desempenho pelos contadores.

Para obter mais informações, consulte SQLGetConnectAttr.

SQL_COPT_SS_PERF_DATA_LOG

SQL_COPT_SS_PERF_DATA_LOG atribui o nome do arquivo de log usado para registrar dados de desempenho. O nome de arquivo de log é uma cadeia de caracteres ANSI ou Unicode terminada por null, dependendo da compilação do aplicativo. O argumento StringLength deve ser SQL_NTS.

SQL_COPT_SS_PERF_DATA_LOG_NOW

SQL_COPT_SS_PERF_DATA_LOG_NOW instrui o driver a escrever uma entrada de log de estatística em disco. O argumento StringLength deve ser SQL_NTS.

SQL_COPT_SS_PERF_QUERY

SQL_COPT_SS_PERF_QUERY inicia ou para de gerar logs para consultas de longa execução. O nome do arquivo de log da consulta deve ser fornecido antes de iniciar a geração de log. O aplicativo pode definir o que é “longa execução” definindo o intervalo para geração de log.

Valor Descrição
SQL_PERF_START Inicia a geração de log de consultas de longa execução.
SQL_PERF_STOP Para a geração de log de consultas de longa execução.

Para obter mais informações, consulte SQLGetConnectAttr.

SQL_COPT_SS_PERF_QUERY_INTERVAL

SQL_COPT_SS_PERF_QUERY_INTERVAL define o limite de log de consultas em milissegundos. Consultas que não são resolvidas dentro do limite são registradas no arquivo de log de consultas de longa execução. Não há nenhum limite superior para o limite de consulta. Um valor de limite de consulta igual a zero faz todas as consultas serem registradas no log.

SQL_COPT_SS_PERF_QUERY_LOG

SQL_COPT_SS_PERF_QUERY_LOG atribui o nome de um arquivo de log para registrar dados de consultas de longa execução. O nome de arquivo de log é uma cadeia de caracteres ANSI ou Unicode terminada por null, dependendo da compilação do aplicativo. O argumento StringLength deve ser SQL_NTS ou o comprimento da cadeia de caracteres em bytes.

SQL_COPT_SS_PRESERVE_CURSORS

Este atributo permite consultar e definir se a conexão preservará o(s) cursor(es) quando você confirmar/reverter uma transação. A configuração é SQL_PC_ON ou SQL_PC_OFF. O valor padrão é SQL_PC_OFF. Essa configuração controla se o driver fechará ou não os cursores para você quando você chamar SQLEndTran (ou SQLTransact).

Valor Descrição
SQL_PC_OFF Padrão. Os cursores são fechados quando a transação é confirmada ou revertida usando SQLEndTran.
SQL_PC_ON Os cursores não são fechados quando a transação é confirmada ou revertida usando SQLEndTran, exceto ao usar um cursor estático ou de conjunto de chaves no modo assíncrono. Se uma reversão for emitida enquanto o preenchimento do cursor não estiver terminado, o cursor será fechado.

SQL_COPT_SS_QUOTED_IDENT

SQL_COPT_SS_QUOTED_IDENT permite identificadores entre aspas em instruções de ODBC e Transact-SQL enviadas na conexão. Ao fornecer identificadores entre aspas, o driver ODBC do SQL Server Native Client permite nomes de objeto inválidos, como "Minha Tabela", que contém um caractere de espaço no identificador. Para saber mais, confira SET QUOTED_IDENTIFIER.

Valor Descrição
SQL_QI_OFF A conexão do SQL Server não permite identificadores entre aspas no Transact-SQL enviado.
SQL_QI_ON Padrão. A conexão permite identificadores entre aspas no Transact-SQL enviado.

SQL_COPT_SS_TRANSLATE

SQL_COPT_SS_TRANSLATE faz o driver traduzir caracteres entre as páginas de código de cliente e de servidor à medida que os dados de MBCS são trocados. O atributo afeta apenas os dados armazenados nas colunas char, varchar e text do SQL Server.

Valor Descrição
SQL_XL_OFF O driver não traduz caracteres de uma página de código para outra em dados de caractere trocados entre o cliente e o servidor.
SQL_XL_ON Padrão. O driver traduz caracteres de uma página de código para outra em dados de caractere trocados entre o cliente e o servidor. O driver configura a tradução de caractere automaticamente, determinando a página de código instalada no servidor e aquela que está sendo usada pelo cliente.

SQL_COPT_SS_TRUST_SERVER_CERTIFICATE

SQL_COPT_SS_TRUST_SERVER_CERTIFICATE faz o driver habilitar ou desabilitar a validação de certificado ao usar criptografia. Este atributo é um valor de leitura/gravação, mas defini-lo depois que uma conexão é estabelecida não tem nenhum efeito.

Aplicativos cliente podem consultar esta propriedade depois que uma conexão foi aberta para determinar as configurações efetivas de criptografia e validação em uso.

Valor Descrição
SQL_TRUST_SERVER_CERTIFICATE_NO Padrão. A criptografia sem validação de certificado não está habilitada.
SQL_TRUST_SERVER_CERTIFICATE_YES A criptografia sem validação de certificado está habilitada.

SQL_COPT_SS_TXN_ISOLATION

SQL_COPT_SS_TXN_ISOLATION define o atributo de isolamento de instantâneo específico do SQL Server. O isolamento de instantâneo não pode ser definido usando SQL_ATTR_TXN_ISOLATION porque o valor é específico do SQL Server. Entretanto, ele pode ser recuperado usando SQL_ATTR_TXN_ISOLATION ou SQL_COPT_SS_TXN_ISOLATION.

Valor Descrição
SQL_TXN_SS_SNAPSHOT Indica que, a partir de uma transação, você não pode consultar alterações feitas em outras transações e que você não pode ver as alterações, nem mesmo quando refizer a consulta.

Para obter mais informações sobre o isolamento de instantâneo, consulte Trabalhando com o isolamento de instantâneo.

SQL_COPT_SS_USE_PROC_FOR_PREP

Não há mais suporte para este atributo.

SQL_COPT_SS_USER_DATA

SQL_COPT_SS_USER_DATA define o ponteiro de dados do usuário. Os dados do usuário são uma memória de propriedade do cliente registrada para cada conexão.

Para obter mais informações, consulte SQLGetConnectAttr.

SQL_COPT_SS_WARN_ON_CP_ERROR

Este atributo determina se você receberá um aviso se houver perda de dados durante uma conversão de página de código. Isto se aplica somente a dados que vêm do servidor.

Valor Descrição
SQL_WARN_YES Gera avisos quando há perda de dados durante uma conversão de página de código.
SQL_WARN_NO (Padrão) Não gera avisos quando há perda de dados durante uma conversão de página de código.

Suporte do SQLSetConnectAttr a SPNs (Nomes da Entidade de Serviço)

SQLSetConnectAttr pode ser usado para definir o valor dos novos atributos de conexão SQL_COPT_SS_SERVER_SPN e SQL_COPT_SS_FAILOVER_PARTNER_SPN. Estes atributos não podem ser definidos quando uma conexão estiver aberta; se você tentar definir estes atributos quando uma conexão estiver aberta, o erro HY011 será passado como retorno, com a mensagem "Operação inválida neste momento". (SQLSetConnectOption também pode ser usado para definir esses valores.)

Para obter mais informações sobre SPNs, consulte SPNs (nomes de entidade de serviço) em ODBC (conexões de cliente).

SQL_COPT_SS_CONNECTION_DEAD

Este é um atributo somente leitura.

Para obter mais informações sobre SQL_COPT_SS_CONNECTION_DEAD, consulte SQLGetConnectAttr e Conectando-se a uma fonte de dados (ODBC).

Exemplo

Este exemplo faz o log de dados de desempenho.

SQLPERF*     pSQLPERF;  
SQLINTEGER   nValue;  
  
// See if you are already logging. SQLPERF* will be NULL if not.  
SQLGetConnectAttr(hDbc, SQL_COPT_SS_PERF_DATA, &pSQLPERF,  
    sizeof(SQLPERF*), &nValue);  
  
if (pSQLPERF == NULL)  
    {  
    // Set the performance log file name.  
    SQLSetConnectAttr(hDbc, SQL_COPT_SS_PERF_DATA_LOG,  
        (SQLPOINTER) "\\My LogDirectory\\MyServerLog.txt", SQL_NTS);  
  
    // Start logging...  
    SQLSetConnectAttr(hDbc, SQL_COPT_SS_PERF_DATA,  
        (SQLPOINTER) SQL_PERF_START, SQL_IS_INTEGER);  
    }  
else  
    {  
    // Take a snapshot now so that your performance statistics are discernible.  
    SQLSetConnectAttr(hDbc, SQL_COPT_SS_PERF_DATA_LOG_NOW, NULL, 0);  
    }  
  
    // ...perform some action...  
  
// ...take a performance data snapshot...  
SQLSetConnectAttr(hDbc, SQL_COPT_SS_PERF_DATA_LOG_NOW, NULL, 0);  
  
    // ...perform more actions...  
  
// ...take another snapshot...  
SQLSetConnectAttr(hDbc, SQL_COPT_SS_PERF_DATA_LOG_NOW, NULL, 0);  
  
// ...and disable logging.  
SQLSetConnectAttr(hDbc, SQL_COPT_SS_PERF_DATA,  
    (SQLPOINTER) SQL_PERF_STOP, SQL_IS_INTEGER);  
  
// Continue on...  

Confira também

Função SQLSetConnectAttr
Detalhes da implementação da API do ODBC
Funções de cópia em massa
SET ANSI_NULLS (Transact-SQL)
SET ANSI_PADDING (Transact-SQL)
SET ANSI_WARNINGS (Transact-SQL)
SET CONCAT_NULL_YIELDS_NULL (Transact-SQL)
SET QUOTED_IDENTIFIER (Transact-SQL)
Função SQLPrepare
SQLGetInfo