Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O driver ODBC do SQL Server Native Client não dá suporte ao modelo de cursor misto (conjunto de chaves/dinâmico). As tentativas de definir o tamanho do conjunto de chaves usando SQL_ATTR_KEYSET_SIZE falharão se o conjunto de valores não for igual a 0.
O aplicativo define SQL_ATTR_ROW_ARRAY_SIZE em todas as instruções para declarar o número de linhas retornadas em uma chamada de função SQLFetchou SQLFetchScroll . Em instruções que indicam um cursor de servidor, o driver usa SQL_ATTR_ROW_ARRAY_SIZE para determinar o tamanho do bloco de linhas que o servidor gera para atender a uma solicitação de busca do cursor. Dentro do tamanho do bloco de um cursor dinâmico, a associação de linha e a ordenação serão corrigidas se o nível de isolamento da transação for suficiente para garantir leituras repetíveis de transações confirmadas. O cursor é completamente dinâmico fora do bloco indicado por esse valor. O tamanho do bloco do cursor do servidor é completamente dinâmico e pode ser alterado a qualquer momento no processamento de busca.
Parâmetros SQLSetStmtAttr e Table-Valued
SQLSetStmtAttr pode ser usado para definir SQL_SOPT_SS_PARAM_FOCUS no APD (descritor de parâmetro de aplicativo) antes de acessar campos de descritor para colunas de parâmetro com valor de tabela.
Se for feita uma tentativa de definir SQL_SOPT_SS_PARAM_FOCUS para o ordinal de um parâmetro que não é um parâmetro com valor de tabela, SQLSetStmtAttr retornará SQL_ERROR e um registro de diagnóstico será criado com SQLSTATE = HY024 e a mensagem "Valor de atributo inválido". SQL_SOPT_SS_PARAM_FOCUS não é alterado quando SQL_ERROR é retornado.
Definir SQL_SOPT_SS_PARAM_FOCUS como 0 restaura o acesso aos registros de descritor para parâmetros.
SQLSetStmtAttr também pode ser usado para definir SQL_SOPT_SS_NAME_SCOPE. Para obter mais informações, consulte a seção SQL_SOPT_SS_NAME_SCOPE, mais adiante neste tópico.
Para obter mais informações, consulte Table-Valued Metadados de parâmetro para instruções preparadas.
Para obter mais informações sobre parâmetros com valor de tabela, consulte ODBC (Parâmetros com valor de tabela).
Suporte a SQLSetStmtAttr para colunas esparsas
SQLSetStmtAttr pode ser usado para definir SQL_SOPT_SS_NAME_SCOPE. Para obter mais informações, consulte a seção SQL_SOPT_SS_NAME_SCOPE, mais adiante neste tópico. Para obter mais informações sobre colunas esparsas, consulte Suporte a Colunas Esparsas (ODBC).
Atributos de instrução
O driver ODBC do SQL Server Native Client também dá suporte aos atributos de instrução específicos do driver a seguir.
SQL_SOPT_SS_CURSOR_OPTIONS
O atributo SQL_SOPT_SS_CURSOR especifica se o driver usará opções de desempenho específicas do driver em cursores. SQLGetData não é permitido quando essas opções são definidas. A configuração padrão é SQL_CO_OFF. O valor ValuePtr é do tipo SQLLEN.
| Valor valuePtr | Descrição |
|---|---|
| SQL_CO_OFF | Padrão. Desabilita cursores somente avanço rápidos, somente leitura e busca automática, habilita o SQLGetData em cursores somente encaminhamento e somente leitura. Quando SQL_SOPT_SS_CURSOR_OPTIONS é definido como SQL_CO_OFF, o tipo de cursor não será alterado. Ou seja, o cursor somente para avanço rápido continuará sendo um cursor somente para frente. Para alterar o tipo de cursor, o aplicativo agora deve definir um tipo de cursor diferente usando SQLSetStmtAttr/SQL_ATTR_CURSOR_TYPE. |
| SQL_CO_FFO | Habilita cursores somente avanço rápidos, somente leitura, desabilita SQLGetData em cursores somente encaminhamento e somente leitura. |
| SQL_CO_AF | Habilita a opção de busca automática em qualquer tipo de cursor. Quando essa opção é definida para um identificador de instrução, SQLExecute ou SQLExecDirect gerará um SQLFetchScroll implícito (SQL_FIRST). O cursor é aberto e o primeiro lote de linhas é retornado em uma única viagem de ida e volta para o servidor. |
| SQL_CO_FFO_AF | Habilita cursores somente avanço rápidos com a opção de busca automática. É o mesmo que se SQL_CO_AF e SQL_CO_FFO forem especificados. |
Quando essas opções são definidas, o servidor fecha o cursor automaticamente quando detecta que a última linha foi buscada. O aplicativo ainda deve chamar SQLFreeStmt (SQL_CLOSE) ou SQLCloseCursor, mas o driver não precisa enviar a notificação de fechamento para o servidor.
Se a lista de seleção contiver uma coluna de texto, ntext ou imagem , o cursor somente para avanço rápido será convertido em um cursor dinâmico e SQLGetData será permitido.
SQL_SOPT_SS_DEFER_PREPARE
O atributo SQL_SOPT_SS_DEFER_PREPARE determina se a instrução é preparada imediatamente ou adiada até que SQLExecute, SQLDescribeCol ou SQLDescribeParam sejam executados. No SQL Server 7.0 e anterior, essa propriedade é ignorada (sem preparação adiada). O valor ValuePtr é do tipo SQLLEN.
| Valor valuePtr | Descrição |
|---|---|
| SQL_DP_ON | Padrão. Depois de chamar a Função SQLPrepare, a preparação da instrução é adiada até que SQLExecute seja chamado ou a operação de metaproperty (SQLDescribeCol ou SQLDescribeParam) seja executada. |
| SQL_DP_OFF | A instrução é preparada assim que o SQLPrepare é executado. |
SQL_SOPT_SS_REGIONALIZE
O atributo SQL_SOPT_SS_REGIONALIZE é usado para determinar a conversão de dados no nível da instrução. O atributo faz com que o driver respeite a configuração de localidade do cliente ao converter valores de data, hora e moeda em cadeias de caracteres. A conversão é somente de tipos de dados nativos do SQL Server para cadeias de caracteres.
O valor ValuePtr é do tipo SQLLEN.
| Valor valuePtr | Descrição |
|---|---|
| SQL_RE_OFF | Padrão. O driver não converte dados de data, hora e moeda em dados de cadeia de caracteres usando a configuração de localidade do cliente. |
| SQL_RE_ON | O driver usa a configuração de localidade do cliente ao converter dados de data, hora e moeda em dados de cadeia de caracteres. |
As configurações de conversão regional se aplicam aos tipos de dados de moeda, numérico, data e hora. A configuração de conversão só é aplicável a conversões de saída quando valores de moeda, numérico, data ou hora são convertidos em cadeias de caracteres.
Observação
Quando a opção de instrução SQL_SOPT_SS_REGIONALIZE estiver ativada, o driver usará as configurações do registro de localidade para o usuário atual. O driver não honrará a localidade do thread atual se o aplicativo o definir, por exemplo, chamando SetThreadLocale.
Alterar o comportamento regional de uma fonte de dados pode causar falha no aplicativo. Um aplicativo que analisa cadeias de caracteres de data e espera que cadeias de caracteres de data apareçam conforme definido pelo ODBC pode ser afetado negativamente alterando esse valor.
SQL_SOPT_SS_TEXTPTR_LOGGING
O atributo SQL_SOPT_SS_TEXTPTR_LOGGING alterna o log de operações em colunas que contêm dados de texto ou imagem . O valor ValuePtr é do tipo SQLLEN.
| Valor valuePtr | Descrição |
|---|---|
| SQL_TL_OFF | Desabilita o registro em log de operações executadas em dados de texto e imagem . |
| SQL_TL_ON | Padrão. Habilita o registro em log de operações executadas em dados de texto e imagem . |
SQL_SOPT_SS_HIDDEN_COLUMNS
O atributo SQL_SOPT_SS_HIDDEN_COLUMNS expõe, no conjunto de resultados, colunas ocultas em uma instrução SELECT FOR BROWSE do SQL Server. O driver não expõe essas colunas por padrão. O valor ValuePtr é do tipo SQLLEN.
| Valor valuePtr | Descrição |
|---|---|
| SQL_HC_OFF | Padrão. As colunas FOR BROWSE estão ocultas do conjunto de resultados. |
| SQL_HC_ON | Expõe colunas FOR BROWSE. |
SQL_SOPT_SS_QUERYNOTIFICATION_MSGTEXT
O atributo SQL_SOPT_SS_QUERYNOTIFICATION_MSGTEXT retorna o texto da mensagem para a solicitação de notificação de consulta.
SQL_SOPT_SS_QUERYNOTIFICATION_OPTIONS
O atributo SQL_SOPT_SS_QUERYNOTIFICATION_OPTIONS especifica as opções usadas para a solicitação de notificação de consulta. Eles são especificados em uma cadeia de caracteres com name=value sintaxe, conforme especificado abaixo. O aplicativo é responsável por criar o serviço e ler as notificações fora da fila.
A sintaxe da cadeia de caracteres das opções de notificação de consulta é:
service=<service-name>[;(local database=<database>|broker instance=<broker instance>)]
Por exemplo:
service=mySSBService;local database=mydb
SQL_SOPT_SS_QUERYNOTIFICATION_TIMEOUT
O atributo SQL_SOPT_SS_QUERYNOTIFICATION_TIMEOUT especifica o número de segundos que a notificação de consulta deve permanecer ativa. O valor padrão é 432000 segundos (5 dias). O valor ValuePtr é do tipo SQLLEN.
SQL_SOPT_SS_PARAM_FOCUS
O atributo SQL_SOPT_SS_PARAM_FOCUS especifica o foco para chamadas SQLBindParameter, SQLGetDescField, SQLSetDescField, SQLGetDescRec e SQLSetDescRec.
O tipo para SQL_SOPT_SS_PARAM_FOCUS é SQLULEN.
O padrão é 0, o que significa que essas chamadas abordam parâmetros que correspondem a marcadores de parâmetro na instrução SQL. Quando definidos como o número de parâmetro de um parâmetro com valor de tabela, essas chamadas abordam colunas desse parâmetro com valor de tabela. Quando definido como um valor que não é o número de parâmetro de um parâmetro com valor de tabela, essas chamadas retornam o erro IM020: "O foco do parâmetro não se refere a um parâmetro com valor de tabela".
SQL_SOPT_SS_NAME_SCOPE
O atributo SQL_SOPT_SS_NAME_SCOPE especifica o escopo do nome para chamadas de função de catálogo subsequentes. O conjunto de resultados retornado por SQLColumns depende da configuração de SQL_SOPT_SS_NAME_SCOPE.
O tipo para SQL_SOPT_SS_NAME_SCOPE é SQLULEN.
| Valor valuePtr | Descrição |
|---|---|
| SQL_SS_NAME_SCOPE_TABLE | Padrão. Ao usar parâmetros com valor de tabela, indica que os metadados para tabelas reais devem ser retornados. Ao usar o recurso de colunas esparsas, SQLColumns retornará apenas colunas que não são membros do esparso column_set. |
| SQL_SS_NAME_SCOPE_TABLE_TYPE | Indica que o aplicativo requer metadados para um tipo de tabela, em vez de uma tabela real (as funções de catálogo devem retornar metadados para tipos de tabela). Em seguida, o aplicativo passa o TYPE_NAME do parâmetro com valor de tabela como o parâmetro TableName . |
| SQL_SS_NAME_SCOPE_EXTENDED | Ao usar o recurso de colunas esparsas, SQLColumns retorna todas as colunas, independentemente da column_set associação. |
| SQL_SS_NAME_SCOPE_SPARSE_COLUMN_SET | Ao usar o recurso de colunas esparsas, SQLColumns retorna apenas colunas que são membros da esparsa column_set. |
| SQL_SS_NAME_SCOPE_DEFAULT | Igual a SQL_SS_NAME_SCOPE_TABLE. |
SS_TYPE_CATALOG_NAME e SS_TYPE_SCHEMA_NAME são usados com os parâmetros CatalogName e SchemaName Quando um aplicativo concluir a recuperação de metadados para parâmetros com valor de tabela, ele deve definir SQL_SOPT_SS_NAME_SCOPE novamente com seu valor padrão SQL_SS_NAME_SCOPE_TABLE.
Quando SQL_SOPT_SS_NAME_SCOPE for definido como SQL_SS_NAME_SCOPE_TABLE, as consultas a servidores vinculados irão falhar. As chamadas para SQLColumns ou SQLPrimaryKeys com um catálogo que contém um componente de servidor falharão.
Se você tentar definir SQL_SOPT_SS_NAME_SCOPE como um valor inválido, SQL_ERROR será retornado e um registro de diagnóstico será gerado com SQLSTATE HY024 e a mensagem "Valor de atributo inválido".
Se uma função de catálogo diferente de SQLTables, SQLColumns ou SQLPrimaryKeys for chamada quando SQL_SOPT_SS_NAME_SCOPE tiver um valor diferente de SQL_SS_NAME_SCOPE_TABLE, SQL_ERROR será retornado. Um registro de diagnóstico é gerado com SQLSTATE HY010 e a mensagem "Erro de sequência de funções (SQL_SOPT_SS_NAME_SCOPE não está definido como SQL_SS_NAME_SCOPE_TABLE)".
Consulte Também
Função SQLGetStmtAttr
Detalhes da implementação da API do ODBC