Uso do tipo de dados
O driver ODBC do SQL Server Native Client e o SQL Server impõem o seguinte uso de tipos de dados:
Tipo de dados |
Limitação |
||
---|---|---|---|
Literais de data |
Os literais de data, quando armazenados em uma coluna SQL_TYPE_TIMESTAMP (tipos de dadosSQL Server de datetime ou smalldatetime), têm um valor de hora de 12:00:00.000 A.M. |
||
money e smallmoney |
Somente as partes do inteiro dos tipos de dados money e smallmoney são significativas. Se a parte decimal dos dados SQL money estiver truncada durante a conversão de tipo de dados, o driver ODBC do SQL Server Native Client retornará um aviso, não um erro. |
||
SQL_BINARY (nullable) |
Quando conectado a uma instância do SQL Server versão 6.0 e anterior, se uma coluna SQL_BINARY permitir valores nulos (nullable), os dados armazenados na fonte de dados não serão preenchidos com zeros. Quando dados de uma coluna desse tipo são recuperados, o driver ODBC do SQL Server Native Client acrescenta zeros à direita dos dados. Porém, os dados criados em operações executadas pelo SQL Server, como concatenação, não recebem esse preenchimento. Além disso, quando os dados são colocados em uma coluna desse tipo em uma instância do SQL Server 6.0 ou anterior, o SQL Server truncará os dados à direita se eles forem muito grandes para o tamanho da coluna.
|
||
SQL_CHAR (truncation) |
Quando conectado a uma instância do SQL Server 6.0 e anterior e os dados forem colocados em uma coluna SQL_CHAR, o SQL Server irá truncá-los à direita se eles não couberem na coluna.
|
||
SQL_CHAR (nullable) |
Quando conectado a uma instância do SQL Server 6.0 e anterior, se uma coluna SQL_CHAR permitir valores nulos (nullable), os dados armazenados na fonte de dados não serão preenchidos com espaços em branco. Quando os dados de uma coluna desse tipo são recuperados, o driver ODBC do SQL Server Native Client acrescenta espaços em branco à direita deles. Porém, os dados criados em operações executadas pelo SQL Server, como concatenação, não recebem esse preenchimento.
|
||
SQL_LONGVARBINARY, SQL_LONGVARCHAR, SQL_WLONGVARCHAR |
Atualizações de colunas com os tipos de dados SQL_LONGVARBINARY, SQL_LONGVARCHAR ou SQL_WLONGVARCHAR (usando uma cláusula WHERE) que afetam várias linhas têm suporte total nas conexões com uma instância do SQL Server 6.x e posterior. Quando conectado a uma instância do SQL Server 4.2x, um erro de S1000, "Partial insert/update. The insert/update of a text or image column(s) did not succeed" será retornado se a atualização afetar mais de uma linha.
|
||
Parâmetros de função de cadeia de caracteres |
Os parâmetros string_exp para as funções de cadeia de caracteres devem ser do tipo de dados SQL_CHAR ou SQL_VARCHAR. Não há suporte para os tipos de dados SQL_LONG_VARCHAR nas funções de cadeia de caracteres. O parâmetro count deve ser inferior ou igual a 8.000 porque os tipos de dados SQL_CHAR e SQL_VARCHAR são limitados a um comprimento máximo de 8.000 caracteres. |
||
Literais de hora |
Os literais de hora, quando armazenados em uma coluna SQL_TIMESTAMP (tipos de dados SQL Server de datetime ou smalldatetime), têm um valor de data de 1 de janeiro de 1900. |
||
timestamp |
Somente um valor NULL pode ser inserido manualmente em uma coluna timestamp. Porém, pelo fato de as colunas timestamp serem atualizadas automaticamente pelo SQL Server, um valor NULL é substituído. |
||
tinyint |
O tipo de dados SQL Servertinyint não tem assinatura. Uma coluna tinyint é associada por padrão a uma variável de tipo de dados SQL_C_UTINYINT. |
||
Tipos de dados de alias |
Quando conectado a uma instância do SQL Server 4.2x, o driver ODBC adiciona NULL a uma definição de coluna que não declara explicitamente a nulidade da coluna. Portanto, a nulidade armazenada na definição de um tipo de dados de alias é ignorada. Quando conectado a uma instância do SQL Server 4.2x, as colunas com o tipo de dados de alias que têm um tipo de dados base de char ou binary e para o qual nenhuma nulidade é declarada são criadas como tipo de dados varchar ou varbinary. SQLColAttribute, SQLColumnse SQLDescribeCol retornam SQL_VARCHAR ou SQL_VARBINARY como o tipo de dados para essas colunas. Os dados recuperados dessas colunas não são preenchidos.
|
||
Tipos de dados LONG |
Os parâmetros dados em execução são restritos aos tipos de dados SQL_LONGVARBINARY e SQL_LONGVARCHAR. |
||
Tipos de valor grande |
O driver ODBC do SQL ServerNative Client irá expor os tipos varchar(max), varbinary(max) e nvarchar(max) como SQL_VARCHAR, SQL_VARBINARY e SQL_WVARCHAR (respectivamente) em APIs que aceitam ou retornam tipos de dados SQL ODBC. |
||
UDT (tipo definido pelo usuário) |
As colunas UDT são mapeadas como SQL_SS_UDT. Se você mapear uma coluna UDT explicitamente para outro tipo na instrução SQL usando os métodos ToString() ou ToXMLString() do UDT, ou as funções CAST/CONVERT, o tipo de coluna no conjunto de resultados refletirá o tipo para o qual a coluna foi convertida. O driver ODBC do SQL Server Native Client pode ser associado a uma coluna UDT somente como binário. SQL Server oferece suporte somente à conversão entre os tipos de dados SQL_SS_UDT e SQL_C_BINARY. |
||
XML |
O SQL Server converterá automaticamente XML em um texto Unicode. O tipo XML é mapeado como SQL_SS_XML. |