Utilizzo del tipo di dati
Il driver ODBC di SQL Server Native Client e SQL Server impongono l'uso dei tipi di dati seguente.
Tipo di dati |
Limitazione |
---|---|
Valori letterali data |
Quando i valori letterali data vengono archiviati in una colonna SQL_TYPE_TIMESTAMP (datiSQL Server di tipo datetime o smalldatetime), hanno un valore 12:00:00.000 AM. |
money e smallmoney |
Solo le parti intere dei tipi di dati money e smallmoney sono significative. Se la parte decimale dei dati money SQL viene troncata durante la conversione del tipo di dati, il driver ODBC di SQL Server Native Client restituisce un avviso, non un errore. |
SQL_BINARY (ammette valori Null) |
Quando viene eseguita una connessione a un'istanza di SQL Server versione 6.0 e precedente, se una colonna SQL_BINARY ammette valori Null, i dati archiviati nell'origine dati non possono essere riempiti di zeri. Quando vengono recuperati i dati da una colonna di questo tipo, il driver ODBC di SQL Server Native Client viene riempito di zeri a destra. Nei dati che vengono creati in operazioni eseguite da SQL Server, ad esempio la concatenazione, tale riempimento non viene eseguito. Quando inoltre i dati vengono posizionati in una colonna di questo tipo in un'istanza di SQL Server 6.0 o versione precedente, SQL Server tronca i dati a destra, se non entrano nella colonna.
Nota
Il driver ODBC di SQL Server Native Client supporta la connessione a SQL Server 6.5 e versione precedente.
|
SQL_CHAR (troncamento) |
Quando si esegue la connessione a un'istanza di SQL Server 6.0 e versione precedente e i dati vengono inseriti in una colonna SQL_CHAR, se i dati non entrano nella colonna, SQL Server li tronca a destra senza visualizzare alcun avviso.
Nota
Il driver ODBC di SQL Server Native Client supporta la connessione a SQL Server 6.5 e versione precedente.
|
SQL_CHAR (ammette valori Null) |
Quando viene eseguita una connessione a un'istanza di SQL Server versione 6.0 e precedente, se una colonna SQL_CHAR ammette valori Null, i dati archiviati nell'origine dati non possono essere riempiti con spazi. Quando vengono recuperati i dati da una colonna di questo tipo, il driver ODBC di SQL Server Native Client viene riempito di spazi a destra. Nei dati che vengono creati in operazioni eseguite da SQL Server, ad esempio la concatenazione, tale riempimento non viene eseguito.
Nota
Il driver ODBC di SQL Server Native Client supporta la connessione a SQL Server 6.5 e versione precedente.
|
SQL_LONGVARBINARY, SQL_LONGVARCHAR, SQL_WLONGVARCHAR |
Gli aggiornamenti di colonne con i tipi di dati SQL_LONGVARBINARY, SQL_LONGVARCHAR o SQL_WLONGVARCHAR (mediante una clausola WHERE) che interessano più righe sono completamente supportati in caso di connessione a un'istanza di SQL Server 6.x e versione successiva. In caso di connessione a un'istanza di SQL Server 4.2x, viene restituito un errore S1000 "Avviso: inserimento o aggiornamento parziale. L'inserimento o l'aggiornamento del testo o delle colonne di immagini non è stato completato", se l'aggiornamento riguarda più di una riga.
Nota
Il driver ODBC di SQL Server Native Client supporta la connessione a SQL Server 6.5 e versione precedente.
|
Parametri delle funzioni per i valori stringa |
I parametri string_exp delle funzioni per i valori stringa devono essere del tipo di dati SQL_CHAR o SQL_VARCHAR. I tipi di dati SQL_LONG_VARCHAR non sono supportati nelle funzioni per i valori stringa. Il parametro count deve essere minore di o uguale a 8.000, in quanto i tipi di dati SQL_CHAR e SQL_VARCHAR sono limitati a una lunghezza massima di 8.000 caratteri. |
Valori letterali ora |
Quando i valori letterali ora vengono archiviati in una colonna SQL_TIMESTAMP (datiSQL Server di tipo datetime o smalldatetime), hanno un valore 1 gennaio 1900. |
timestamp |
In una colonna timestamp è possibile inserire manualmente solo un valore NULL. Tale valore viene tuttavia sovrascritto in quanto le colonne timestamp vengono aggiornate automaticamente da SQL Server. |
tinyint |
Il tipo di dati SQL Server tinyint è senza segno. Una colonna tinyint viene associata a una variabile del tipo di dati SQL_C_UTINYINT per impostazione predefinita. |
Tipi di dati alias |
In caso di connessione a un'istanza di SQL Server 4.2x, il driver ODBC aggiunge NULL a una definizione di colonna che non dichiara in modo esplicito che una colonna ammette valori Null. Per questo motivo, il supporto di valori Null che viene archiviato nella definizione di un tipo di dati alias viene ignorato. In caso di connessione a un'istanza di SQL Server 4.2x, le colonne con un tipo di dati alias che presenta un tipo di dati di base char o binary , e per cui non viene dichiarato il supporto di valori Null, vengono create come tipo di dati varchar o varbinary. SQLColAttribute, SQLColumns e SQLDescribeCol restituiscono SQL_VARCHAR o SQL_VARBINARY come tipo di dati per queste colonne. Ai dati recuperati da queste colonne non viene applicato il riempimento.
Nota
Il driver ODBC di SQL Server Native Client supporta la connessione a SQL Server 6.5 e versione precedente.
|
Tipi di dati LONG |
I parametri data-at-execution sono limitati per entrambi i tipi di dati, SQL_LONGVARBINARY e SQL_LONGVARCHAR. |
Tipi per valori di grandi dimensioni |
Il driver ODBC di SQL Server Native Client esporrà i tipi varchar(max), varbinary(max) e nvarchar(max) come SQL_VARCHAR, SQL_VARBINARY e SQL_WVARCHAR (rispettivamente) nelle API che accettano o restituiscono tipi di dati ODBC SQL. |
Tipo definito dall'utente (UDT) |
Le colonne con tipo definito dall'utente vengono mappate come SQL_SS_UDT. Se una colonna con tipo definito dall'utente viene mappata in modo esplicito a un altro tipo nell'istruzione SQL mediante i metodi ToString() o ToXMLString() del tipo definito dall'utente oppure mediante le funzioni CAST/CONVERT, il tipo di colonna nel set di risultati rifletterà il tipo effettivo nel quale è stata convertita la colonna. Il driver ODBC di SQL Server Native Client può essere associato a una colonna con tipo definito dall'utente solo come tipo binario. SQL Server supporta solo la conversione tra i tipi di dati SQL_SS_UDT e SQL_C_BINARY. |
XML |
Verrà eseguita automaticamente la conversione di XML in testo Unicode. Il tipo XML viene mappato come SQL_SS_XML. |