Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
A conversão de um programa de cópia em massa DB-Library para ODBC é fácil porque as funções de cópia em massa compatíveis com o driver ODBC do SQL Server Native Client são semelhantes às funções de cópia em massa DB-Library, com as seguintes exceções:
DB-Library aplicativos passam um ponteiro para uma estrutura DBPROCESS como o primeiro parâmetro de funções de cópia em massa. Em aplicativos ODBC, o ponteiro DBPROCESS é substituído por um identificador de conexão ODBC.
DB-Library aplicativos chamam BCP_SETL antes de se conectar para habilitar operações de cópia em massa em um DBPROCESS. Em vez disso, os aplicativos ODBC chamam SQLSetConnectAttr antes de se conectarem para habilitar operações em massa em um identificador de conexão:
SQLSetConnectAttr(hdbc, SQL_COPT_SS_BCP, (void *)SQL_BCP_ON, SQL_IS_INTEGER);
O driver ODBC do SQL Server Native Client não dá suporte DB-Library manipuladores de mensagens e erros; você deve chamar SQLGetDiagRec para obter erros e mensagens geradas pelas funções de cópia em massa ODBC. As versões ODBC das funções de cópia em massa retornam os códigos de retorno de cópia em massa padrão de ÊXITO ou FAILED, não códigos de retorno no estilo ODBC, como SQL_SUCCESS ou SQL_ERROR.
Os valores especificados para o parâmetro DB-Library bcp_bindvarlen são interpretados de forma diferente do parâmetro ODBC bcp_bindcbData .
Condição indicada DB-Library valor varlen Valor cbData ODBC Valores nulos fornecidos 0 -1 (SQL_NULL_DATA) Dados variáveis fornecidos -1 -10 (SQL_VARLEN_DATA) Caractere de comprimento zero ou cadeia de caracteres binária NA 0 Na Biblioteca de Banco de Dados, um valor varlen de -1 indica que os dados de comprimento variável estão sendo fornecidos, o que no cbData ODBC é interpretado para significar que apenas valores NULL estão sendo fornecidos. Altere as especificações varlen de DB-Library de -1 para SQL_VARLEN_DATA e quaisquer especificações de varlen de 0 para SQL_NULL_DATA.
O DB-Library bcp_colfmt file_collen e o ODBC bcp_colfmtcbUserData têm o mesmo problema que os parâmetros bcp_bindvarlen e cbData observados acima. Altere as especificações file_collen de DB-Library de -1 para SQL_VARLEN_DATA e quaisquer especificações de file_collen de 0 para SQL_NULL_DATA.
O parâmetro iValue da função ODBC bcp_control é um ponteiro nulo. Na Biblioteca de Banco de Dados, iValue era um inteiro. Converta os valores do iValue ODBC como nulo *.
A opção bcp_control BCPMAXERRS especifica quantas linhas individuais podem ter erros antes de uma operação de cópia em massa falhar. O padrão para BCPMAXERRS é 0 (fail on first error) na versão DB-Library de bcp_control e 10 na versão ODBC. DB-Library aplicativos que dependem do padrão de 0 para encerrar uma operação de cópia em massa devem ser alterados para chamar o ODBC bcp_control para definir BCPMAXERRS como 0.
A função de bcp_control ODBC dá suporte às seguintes opções não compatíveis com a versão DB-Library do bcp_control:
BCPODBC
Quando definido como TRUE, especifica que os valores datetime e smalldatetime salvos no formato de caractere terão o prefixo e o sufixo da sequência de escape do carimbo de data/hora ODBC. Isso só se aplica a operações de BCP_OUT.
Com BCPODBC definido como FALSE, um valor de datetime convertido em uma cadeia de caracteres é saída como:
1997-01-01 00:00:00.000
Com BCPODBC definido como TRUE, o mesmo valor de datetime é a saída como:
{ts '1997-01-01 00:00:00.000' }
BCPKEEPIDENTITY
Quando definido como TRUE, especifica que as funções de cópia em massa inserem valores de dados fornecidos para colunas com restrições de identidade. Se isso não estiver definido, novos valores de identidade serão gerados para as linhas inseridas.
BCPHINTS
Especifica várias otimizações de cópia em massa. Essa opção não pode ser usada em versões 6.5 ou anteriores do SQL Server.
BCPFILECP
Especifica a página de código do arquivo de cópia em massa.
BCPUNICODEFILE
Especifica que um arquivo de cópia em massa do modo de caractere é um arquivo Unicode.
A função ODBC bcp_colfmt não dá suporte ao indicador file_type de SQLCHAR porque está em conflito com o typedef ODBC SQLCHAR. Em vez disso, use SQLCHARACTER para bcp_colfmt.
Nas versões ODBC de funções de cópia em massa, o formato para trabalhar com valores datetime e smalldatetime em cadeias de caracteres é o formato ODBC de yyyy-mm-dd hh:mm:ss.sss; Os valores smalldatetime usam o formato ODBC de yyyy-mm-dd hh:mm:ss.
As versões DB-Library das funções de cópia em massa aceitam valores datetime e smalldatetime em cadeias de caracteres usando vários formatos:
O formato padrão é mmm dd yyyyy hh:mmxx ondexx é AM ou PM.
cadeias de caracteres datetime e smalldatetime em qualquer formato compatível com a função DB-Library dbconvert .
Quando a caixa Usar configurações internacionais é marcada na guia Opções DB-Library do Utilitário de Rede de Cliente do SQL Server, as funções de cópia em massa do DB-Library também aceitam datas no formato de data regional definido para a configuração de localidade do registro do computador cliente.
As funções de cópia em massa DB-Library não aceitam os formatos ODBC datetime e smalldatetime .
Se o atributo de instrução SQL_SOPT_SS_REGIONALIZE estiver definido como SQL_RE_ON, as funções de cópia em massa ODBC aceitarão datas no formato de data regional definido para a configuração de localidade do registro do computador cliente.
Ao gerar valores monetários no formato de caractere, as funções de cópia em massa ODBC fornecem quatro dígitos de precisão e nenhum separador de vírgula; DB-Library versões fornecem apenas dois dígitos de precisão e incluem os separadores de vírgula.
Consulte Também
Executando operações de cópia em massa (ODBC)
Funções de cópia em massa