Dimensioni della colonna

La dimensione della colonna (o del parametro) dei tipi di dati numerici è definita come il numero massimo di cifre utilizzate dal tipo di dati della colonna o del parametro o la precisione dei dati. Per i tipi di carattere, si tratta della lunghezza in caratteri dei dati. Per i tipi di dati binari, le dimensioni della colonna sono definite come lunghezza in byte dei dati. Per i tipi di dati time, timestamp e all interval, si tratta del numero di caratteri nella rappresentazione dei caratteri di questi dati. La tabella seguente illustra le dimensioni della colonna definite per SQL tipo di dati conciso.

SQL tipo di dati Dimensioni colonna
Tutti i tipi di carattere[a],[b] Dimensione della colonna definita o massima in caratteri della colonna o del parametro (come contenuto nel campo SQL_DESC_LENGTH descrittore di colonna). Ad esempio, le dimensioni della colonna di una colonna di caratteri a byte singolo definite come CHAR(10) sono 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 senza segno)
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 (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 (numero di caratteri nel formato aaaa-mm-gg hh:mm)

19 (numero di caratteri nel formato aaaa-mm-gg hh:mm:ss)

oppure

20 + s (numero di caratteri nel formato aa-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 aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeee)

[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 di 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 interval, vedere Lunghezza deltipo di dati Interval , più indietro in questa appendice.

I valori restituiti per le dimensioni della colonna (o del parametro) non corrispondono ai valori in un campo descrittore. I valori possono derivare dal campo SQL_DESC_PRECISION o SQL_DESC_LENGTH, a seconda del tipo di dati, come illustrato nella tabella seguente.

Tipo SQL Campo del descrittore corrispondente a

dimensioni della colonna o del parametro
Tutti i tipi di carattere e binari LENGTH
Tutti i tipi numerici PRECISION
Tutti i tipi datetime e interval LENGTH
SQL_BIT LENGTH