Modifiche ai tipi di dati datetime

In ODBC 3.x gli identificatori per i tipi di dati SQL data, ora e timestamp sono stati modificati da SQL_DATE, SQL_TIME e SQL_TIMESTAMP (con istanze di #define nel file di intestazione di 9, 10 e 11) rispettivamente a SQL_TYPE_DATE, SQL_TYPE_TIME e SQL_TYPE_TIMESTAMP (con istanze di #define nel file di intestazione di 91, 92 e 93). Gli identificatori di tipo C corrispondenti sono stati modificati rispettivamente da SQL_C_DATE, SQL_C_TIME e SQL_C_TIMESTAMP a SQL_C_TYPE_DATE, SQL_C_TYPE_TIME e SQL_C_TYPE_TIMESTAMP.

Le dimensioni delle colonne e le cifre decimali restituite per i tipi di dati datetime SQL in ODBC 3.x corrispondono alla precisione e alla scala restituite per tali dati in ODBC 2.x. Questi valori sono diversi dai valori dei campi descrittori SQL_DESC_PRECISION e SQL_DESC_SCALE. Per maggiori informazioni, vedere Dimensione colonna, cifre decimali, lunghezza trasferimento in ottetti e dimensioni visualizzazione.

Queste modifiche riguardano SQLDescribeCol, SQLDescribeParam e SQLColAttribute; SQLBindCol, SQLBindParameter e SQLGetData; SQLColumns, SQLGetTypeInfo, SQLProcedureColumns, SQLStatistics e SQLSpecialColumns.

Nella tabella seguente viene illustrato il modo in cui Gestione driver ODBC 3.x esegue il mapping dei tipi di dati C data, ora e timestamp immessi negli argomenti TargetType di SQLBindCol e SQLGetData o nell'argomento ValueType di SQLBindParameter.

Tipo di dati

codice immesso
Da app 2.x a

Driver 2.x
Da app 2.x a

Driver 3.x
Da app 3.x a

Driver 2.x
Da app 3.x a

Driver 3.x
SQL_C_DATE (9) Nessun mapping SQL_C_TYPE_DATE (91) Nessun mapping[1] SQL_C_TYPE_DATE (91)
SQL_C_TYPE_DATE (91) Errore (da DM) Errore (da DM) SQL_C_DATE (9) Nessun mapping[2]
SQL_C_TIME (10) Nessun mapping SQL_C_TYPE_TIME (92) Nessun mapping[1] SQL_C_TYPE_TIME (92)
SQL_C_TYPE_TIME (92) Errore (da DM) Errore (da DM) SQL_C_TIME (10) Nessun mapping[2]
SQL_C_TIMESTAMP (11) Nessun mapping SQL_C_TYPE_TIMESTAMP (93) Nessun mapping[1] SQL_C_TYPE_TIMESTAMP (93)
SQL_C_TYPE_TIMESTAMP (93) Errore (da DM) Errore (da DM) SQL_C_TIMESTAMP (11) Nessun mapping[2]

[1] Di conseguenza, un'applicazione ODBC 3.x che utilizza un driver ODBC 2.x può usare i codici data, ora o timestamp restituiti nei set di risultati restituiti dalle funzioni catalogo.

[2] Di conseguenza, un'applicazione ODBC 3.x che utilizza un driver ODBC 3.x può usare i codici data, ora o timestamp restituiti nei set di risultati restituiti dalle funzioni catalogo.

Nella tabella seguente viene illustrato il modo in cui Gestione driver ODBC 3.x esegue il mapping dei tipi di dati C data, ora e timestamp immessi nell’argomento ParameterType di SQLBindParameter o nell’argomento DataType di SQLGetTypeInfo.

Tipo di dati

codice immesso
Da app 2.x a

Driver 2.x
Da app 2.x a

Driver 3.x
Da app 3.x a

Driver 2.x
Da app 3.x a

Driver 3.x
SQL_DATE (9) Nessun mapping SQL_TYPE_DATE (91) Nessun mapping[1] SQL_TYPE_DATE (91)
SQL_TYPE_DATE (91) Errore (da DM) Errore (da DM) SQL_DATE (9) Nessun mapping[2]
SQL_TIME (10) Nessun mapping SQL_TYPE_TIME (92) Nessun mapping[1] SQL_TYPE_TIME (92)
SQL_TYPE_TIME (92) Errore (da DM) Errore (da DM) SQL_TIME (10) Nessun mapping[2]
SQL_TIMESTAMP (11) Nessun mapping SQL_TYPE_TIMESTAMP (93) Nessun mapping[1] SQL_TYPE_TIMESTAMP (93)
SQL_TYPE_TIMESTAMP (93) Errore (da DM) Errore (da DM) SQL_TIMESTAMP (11) Nessun mapping[2]

[1] Di conseguenza, un'applicazione ODBC 3.x che utilizza un driver ODBC 2.x può usare i codici data, ora o timestamp restituiti nei set di risultati restituiti dalle funzioni catalogo.

[2] Di conseguenza, un'applicazione ODBC 3.x che utilizza un driver ODBC 3.x può usare i codici data, ora o timestamp restituiti nei set di risultati restituiti dalle funzioni catalogo.