Função SQLDataSourceToDriver
SQLDataSourceToDriver suporta traduções para drivers ODBC. Esta função não é chamada por aplicativos habilitados para ODBC; aplicativos solicitam tradução através SQLSetConnectAttr. O driver associado ao ConnectionHandle especificado em SQLSetConnectAttr chama a DLL especificada para executar traduções de todos os dados que fluem da fonte de dados para o driver. Uma DLL de tradução padrão pode ser especificada no arquivo de inicialização ODBC.
Sintaxe
BOOL SQLDataSourceToDriver(
UDWORD fOption,
SWORD fSqlType,
PTR rgbValueIn,
SDWORD cbValueIn,
PTR rgbValueOut,
SDWORD cbValueOutMax,
SDWORD * pcbValueOut,
UCHAR * szErrorMsg,
SWORD cbErrorMsgMax,
SWORD * pcbErrorMsg);
Argumentos
fOption
[Entrada] Valor da opção.
fSqlType
[Entrada] O tipo de dados SQL. Esse argumento informa ao driver como converter rgbValueIn em um formulário aceitável pelo aplicativo. Para obter uma lista de tipos de dados SQL válidos, consulte a seção Tipos de Dados SQL no Apêndice D: Tipos de Dados.
rgbValueIn
[Entrada] Valor a traduzir.
cbValueIn
[Entrada] Comprimento de rgbValueIn.
rgbValueOut
[Realização] Resultado da tradução.
Observação
A DLL de tradução não termina esse valor de nulo.
cbValueOutMax
[Entrada] Comprimento de rgbValueOut.
pcbValueOut
[Realização] O número total de bytes (excluindo o byte de terminação nulo) disponíveis para retornar em rgbValueOut.
Para dados binários ou de caracteres, se isso for maior ou igual a
Para todos os outros tipos de dados, o valor de cbValueOutMax é ignorado e a DLL de conversão assume que o tamanho de rgbValueOut é o tamanho do tipo de dados C padrão do tipo de dados SQL especificado com fSqlType.
O argumento pcbValueOut pode ser um ponteiro nulo.
szErrorMsg
[Realização] Ponteiro para armazenamento para uma mensagem de erro. Esta é uma cadeia de caracteres vazia, a menos que a tradução falhe.
cbErrorMsgMax
[Entrada] Comprimento de szErrorMsg.
pcbErrorMsg
[Realização] Ponteiro para o número total de bytes (excluindo o byte de terminação nula) disponíveis para retornar em szErrorMsg. Se isso for maior ou igual a cbErrorMsg , os dados em szErrorMsg serão truncados para cbErrorMsgMax menos o caractere de terminação nula. O pcbErrorMsg argumento pode ser um ponteiro nulo.
Devoluções
TRUE se a tradução foi bem-sucedida, FALSE se a tradução falhou.
Observações
O driver chama SQLDataSourceToDriver para traduzir todos os dados (dados do conjunto de resultados, nomes de tabelas, contagens de linhas, mensagens de erro e assim por diante) passando da fonte de dados para o driver. A DLL de tradução pode não traduzir alguns dados, dependendo do tipo de dados e da finalidade da DLL de tradução; por exemplo, uma DLL que traduz dados de caracteres de uma página de código para outra ignora todos os dados numéricos e binários.
O valor de fOption é definido como o valor de vParam especificado chamando SQLSetConnectAttr com o atributo SQL_ATTR_TRANSLATE_OPTION. É um valor de 32 bits que tem um significado específico para uma determinada DLL de tradução. Por exemplo, poderia especificar uma determinada tradução de conjunto de caracteres.
Se o mesmo buffer for especificado para rgbValueIn e rgbValueOut, a conversão de dados no buffer será executada no local.
Embora cbValueIn , cbValueOutMaxe pcbValueOut sejam do tipo SDWORD, SQLDataSourceToDriver não suporta necessariamente ponteiros enormes.
Se SQLDataSourceToDriver retornar FALSE, o truncamento de dados pode ter ocorrido durante a tradução. Se pcbValueOut (o número de bytes disponíveis para retornar no buffer de saída) for maior que cbValueOutMax (o comprimento do buffer de saída), ocorreu truncamento. O condutor deve determinar se o truncamento foi aceitável. Se o truncamento não ocorreu, o SQLDataSourceToDriver retornado FALSE devido a outro erro. Em ambos os casos, uma mensagem de erro específica é retornada no szErrorMsg.
Para obter mais informações sobre como traduzir dados, consulte Translation DLLs.
Funções relacionadas
Para obter informações sobre | Ver |
---|---|
Traduzir dados que estão sendo enviados para a fonte de dados | SQLDriverToDataSource |
Retornando a configuração de um atributo de conexão | SQLGetConnectAttr |
Definindo um atributo de conexão | SQLSetConnectAttr |