Dimensioni della colonna
La dimensione della colonna (o del parametro) dei tipi di dati numerici è definita come il numero massimo di cifre usate dal tipo di dati della colonna o del parametro o della precisione dei dati. Per i tipi di caratteri, si tratta della lunghezza in caratteri dei dati; per i tipi di dati binari, le dimensioni delle colonne sono definite come la lunghezza in byte dei dati. Per i tipi di dati time, timestamp e tutti gli intervalli, si tratta del numero di caratteri nella rappresentazione di caratteri di questi dati. La dimensione della colonna definita per ogni tipo di dati SQL conciso è illustrata nella tabella seguente.
Identificatore del tipo SQL | Dimensioni colonna |
---|---|
Tutti i tipi di caratteri[a],[b] | Dimensione della colonna definita o massima in caratteri della colonna o del parametro (come contenuto nel campo del descrittore SQL_DESC_LENGTH). Ad esempio, la dimensione della colonna di una colonna di caratteri a byte singolo definita come CHAR(10) è 10. |
SQL_DECIMAL SQL_NUMERIC | Numero definito di cifre. Ad esempio, la precisione di una colonna definita come NUMERIC(10,3) è 10. |
SQL_BIT[c] | 1 |
SQL_TINYINT[c] | 3 |
SQL_SMALLINT[c] | 5 |
SQL_INTEGER[c] | 10 |
SQL_BIGINT[c] | 19 (se firmato) o 20 (se non firmato) |
SQL_REAL[c] | 7 |
SQL_FLOAT[c] | 15 |
SQL_DOUBLE[c] | 15 |
Tutti i tipi binari[a],[b] | Lunghezza definita o massima in byte della colonna o del parametro. Ad esempio, la lunghezza di una colonna definita come BINARY(10) è 10. |
SQL_TYPE_DATE[c] | 10 (numero di caratteri nel formato aaaa-mm-gg ). |
SQL_TYPE_TIME[c] | 8 (il numero di caratteri nel formato hh-mm-ss ) o 9 + s (il numero di caratteri nel formato hh:mm:ss[.fff...] , dove s è la precisione dei secondi). |
SQL_TYPE_TIMESTAMP | 16 (il numero di caratteri nel formato a-mm-gg hh:mm ) 19 (il numero di caratteri nel formato aa-mm-gg hh:mm:ss ) or 20 + s (il numero di caratteri nel formato aaaa-mm-gg hh:mm:ss[.fff...] , dove s è la precisione dei secondi). |
SQL_INTERVAL_SECOND | Dove p è la precisione iniziale dell'intervallo e s è la precisione dei secondi, p (se s=0) o p+s+1 (se s>0).[ d] |
SQL_INTERVAL_DAY_TO_SECOND | Dove p è la precisione iniziale dell'intervallo e s è la precisione dei secondi, 9+p (se s=0) o 10+p+s (se s>0).[ d] |
SQL_INTERVAL_HOUR_TO_SECOND | Dove p è la precisione iniziale dell'intervallo e s è la precisione dei secondi, 6+p (se s=0) o 7+p+s (se s>0).[ d] |
SQL_INTERVAL_MINUTE_TO_SECOND | Dove p è la precisione iniziale dell'intervallo e s è la precisione dei secondi, 3+p (se s=0) o 4+p+s (se s>0).[ d] |
SQL_INTERVAL_YEAR SQL_INTERVAL_MONTH SQL_INTERVAL_DAY SQL_INTERVAL_HOUR SQL_INTERVAL_MINUTE | p, dove p è la precisione iniziale dell'intervallo.[ d] |
SQL_INTERVAL_YEAR_TO_MONTH SQL_INTERVAL_DAY_TO_HOUR | 3+p, dove p è la precisione iniziale dell'intervallo.[ d] |
SQL_INTERVAL_DAY_TO_MINUTE | 6+p, dove p è la precisione iniziale dell'intervallo.[ d] |
SQL_INTERVAL_HOUR_TO_MINUTE | 3+p, dove p è la precisione iniziale dell'intervallo.[ d] |
SQL_GUID | 36 (numero di caratteri nel formato aaaa-bbbb-cccc-dddd-eeeee) |
[a] Per un'applicazione ODBC 1.0 che chiama SQLSetParam in un driver ODBC 2.0 e per un'applicazione ODBC 2.0 che chiama SQLBindParameter in un driver ODBC 1.0, quando *StrLen_or_IndPtr è SQL_DATA_AT_EXEC per un tipo SQL_LONGVARCHAR o SQL_LONGVARBINARY, ColumnSize deve essere impostato sulla lunghezza totale dei dati da inviare, non la precisione definita in questa tabella.
[b] Se il driver non è in grado di determinare la lunghezza della colonna o del parametro per un tipo variabile, restituisce SQL_NO_TOTAL.
[c] L'argomento ColumnSize di SQLBindParameter viene ignorato per questo tipo di dati.
[d] Per le regole generali sulla lunghezza delle colonne nei tipi di dati intervallo, vedere Intervallo lunghezza del tipo di dati, più indietro in questa appendice.
I valori restituiti per la dimensione della colonna (o del parametro) non corrispondono ai valori in un campo descrittore. I valori possono provenire dal SQL_DESC_PRECISION o dal campo SQL_DESC_LENGTH, a seconda del tipo di dati, come illustrato nella tabella seguente.
Tipo SQL | Campo descrittore corrispondente a dimensione colonna o parametro |
---|---|
Tutti i tipi di caratteri e binari | LENGTH |
Tutti i tipi numerici | PRECISION |
Tutti i tipi datetime e interval | LENGTH |
SQL_BIT | LENGTH |