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.
Observação
Essas informações aplicam-se às classes ODBC do MFC. Se estiver trabalhando com as classes DAO do MFC, confira o tópico "Comparação do SQL e SQL ANSI do Mecanismo de Banco de Dados Jet da Microsoft" na Ajuda do DAO.
A tabela a seguir mapeia tipos de dados SQL ANSI para tipos de dados C++. Isso aumenta as informações de linguagem C fornecidas no Apêndice D da documentação de Referência do Programador ODBC. Os assistentes gerenciam a maioria dos mapeamentos de tipo de dados para você. Se você não usar um assistente, poderá usar as informações de mapeamento como auxílio para escrever manualmente o código de troca de campo.
Tipos de dados SQL ANSI mapeados para tipos de dados C++
| Tipo de dados SQL ANSI | Tipo de dados em C++ |
|---|---|
| QUEIMAR | CString |
| Decimal |
CString 1 |
| SMALLINT | int |
| REAL | float |
| INTEIRO | long |
| PONTO FLUTUANTE | double |
| DOBRAR | double |
| NUMÉRICO |
CString 1 |
| VARCHAR | CString |
| LONGVARCHAR |
CLongBinary, CString 2 |
| BIT | BOOL |
| TINYINT | BYTE |
| BIGINT |
CString 1 |
| BINÁRIO | CByteArray |
| VARBINARY | CByteArray |
| LONGVARBINARY |
CLongBinary, CByteArray 3 |
| DATA |
CTime, CString |
| time |
CTime, CString |
| TIMESTAMP |
CTime, CString |
Os valores DECIMAL e NUMERIC ANSI são mapeados para
CStringporque SQL_C_CHAR é o tipo de transferência ODBC padrão.Dados de caractere além de 255 caracteres são truncados por padrão quando mapeados para
CString. Você pode estender o comprimento do truncamento definindo explicitamente o argumento nMaxLength deRFX_Text.Dados binários além de 255 caracteres são truncados por padrão quando mapeados para
CByteArray. Você pode estender o comprimento do truncamento definindo explicitamente o argumento nMaxLength deRFX_Binary.
Se você não estiver usando a biblioteca de cursores ODBC, poderá encontrar um problema ao tentar atualizar dois ou mais campos longos de comprimento variável usando o driver ODBC do Microsoft SQL Server e as classes de banco de dados ODBC do MFC. Os tipos ODBC, SQL_LONGVARCHAR e SQL_LONGVARBINARY, são mapeados para tipos de texto e imagem do SQL Server. Um CDBException será gerado se você atualizar dois ou mais campos longos de comprimento variável na mesma chamada para CRecordset::Update. Portanto, não atualize várias colunas longas simultaneamente com CRecordset::Update. Você pode atualizar várias colunas longas simultaneamente com a API ODBC SQLPutData. Você também pode usar a biblioteca de cursores ODBC, mas isso não é recomendado para drivers, como o driver SQL Server, que dão suporte a cursores e não precisam da biblioteca de cursores.
Se você estiver usando a biblioteca de cursores ODBC com as classes de banco de dados ODBC do MFC e o driver ODBC do Microsoft SQL Server, um ASSERT poderá ocorrer junto com um CDBException se uma chamada a CRecordset::Update for realizada após uma chamada para CRecordset::Requery. Em vez disso, faça uma chamada para CRecordset::Close e CRecordset::Open em vez de CRecordset::Requery. Outra solução é não usar a biblioteca de cursores ODBC, pois o SQL Server e o driver ODBC do SQL Server dão suporte nativo para cursores e a biblioteca de cursores ODBC não é necessária.