資料行大小、十進位數、傳輸八位長度和顯示大小 - ODBC

資料類型的特點是其資料行(或參數)大小、小數位數、長度和顯示大小。 下列 ODBC 函式會針對 SQL 語句中的參數或資料來源上的 SQL 資料類型,傳回這些屬性。 每個 ODBC 函式都會傳回一組不同的這些屬性,如下所示:

  • SQLDescribeCol 會傳回其描述之資料行的資料行大小和十進位數。

  • SQLDescribeParam 會傳回所描述參數的參數大小和十進位數。 SQLBindParameter 會設定 SQL 語句中參數的參數大小和十進位數。

  • 目錄函式 SQLColumns、 SQLProcedureColumns SQLGetTypeInfo 會傳回資料表、結果集或程式參數和資料來源中資料類型目錄屬性的屬性。 SQLColumns 會傳回指定資料表中資料行的資料行大小、十進位數和長度(例如基表、檢視表或系統資料表)。 SQLProcedureColumns 會傳回程序中資料行的資料行大小、十進位數和長度。 SQLGetTypeInfo 會傳回資料來源上 SQL 資料類型的最大資料行大小和最小和最大十進位數。

這些函數針對資料行或參數大小所傳回的值會對應至 ODBC 2 中所定義的「有效位數」。 x . 不過,這些值不一定對應至SQL_DESC_PRECISION或任何其他描述元欄位中所傳回的值。 十進位數也是如此,其對應至 ODBC 2 中所定義的「小數位數」。 x . 它不一定對應至SQL_DESC_SCALE或任何其他描述元欄位中傳回的值,但會根據資料類型而來自不同的描述元欄位。 如需詳細資訊,請參閱 資料行大小 十進位數

同樣地,傳輸八位長度的值不是來自SQL_DESC_LENGTH。 它們來自所有字元和二進位類型的描述元欄位SQL_DESC_OCTET_LENGTH。 沒有描述項欄位會保存其他類型的這項資訊。

所有資料類型的顯示大小值都會對應至單一描述元欄位中的值,SQL_DESC_DISPLAY_SIZE。

描述項欄位描述結果集的特性。 描述項欄位不包含語句執行前資料的有效值。 另一方面,SQLColumns、SQLProcedureColumns 和 SQLGetTypeInfo 傳回之資料行大小、 小數位數和 顯示大小的值會傳回資料庫物件的特性,例如存在於資料來源目錄中的資料表資料行和資料類型。 同樣地,在結果集中, SQLColAttribute 會傳回資料來源資料行的資料行大小、十進位數和傳輸八位長度;這些值不一定與SQL_DESC_PRECISION、SQL_DESC_SCALE和SQL_DESC_OCTET_LENGTH描述元欄位的值相同。

如需這些描述元欄位的詳細資訊,請參閱 SQLSetDescField

相關主題: