SQLSetConnectAttr
Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure Azure Synapse Analytics Analytics Platform System (PDW)
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 | Depois |
SQL_COPT_SS_ENCRYPT | Antes |
SQL_COPT_SS_ENLIST_IN_DTC | Depois |
SQL_COPT_SS_ENLIST_IN_XA | Depois |
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 | Depois |
SQL_COPT_SS_PERF_DATA_LOG | Depois |
SQL_COPT_SS_PERF_DATA_LOG_NOW | Depois |
SQL_COPT_SS_PERF_QUERY | Depois |
SQL_COPT_SS_PERF_QUERY_INTERVAL | Depois |
SQL_COPT_SS_PERF_QUERY_LOG | Depois |
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