元數據是描述其他數據的數據。 例如,結果集元數據描述結果集的特性,例如結果集中的數據行數目、這些數據行的數據類型、其名稱、有效位數和可為 Null 性。
ODBC 會透過其類別目錄 API 函式提供元數據給應用程式。 SQL Server Native Client ODBC 驅動程式會實作許多 ODBC API 類別目錄函式,做為對應 SQL Server 目錄程式的呼叫。
應用程式需要大部分結果集作業的元數據。 例如,應用程式會使用數據行的數據類型來判斷要系結至該數據行的變數類型。 它會使用字元數據行的位元組長度來判斷它必須有多少空間才能顯示該數據行的數據。 應用程式如何判斷數據行的元數據取決於應用程式的類型。
垂直應用程式通常會使用預先定義的數據表,並在這些數據表上執行預先定義的作業。 由於這類應用程式的結果集元數據是在應用程式甚至撰寫且由開發人員所控制之前定義,所以它可以硬式編碼至應用程式。 例如,如果訂單標識碼數據行定義為數據源中的 4 位元組整數,應用程式一律可以將 4 位元組整數係結至該資料行。 在應用程式中硬式編碼元數據時,應用程式所使用的數據表變更通常表示變更應用程式程序代碼。
在一般應用程式中,特別是支援臨機作查詢的應用程式,它們所建立的結果集元數據通常未知,直到運行時間為止。
若要判斷結果集的特性,應用程式可以呼叫:
SQLNumResultCols 可判斷要求傳回的數據行數目。
SQLColAttribute 或 SQLDescribeCol 描述結果集中的數據行。
設計良好的應用程式會以假設結果集未知,並使用這些函式傳回的信息來系結結果集中的數據行。 在備妥或執行語句之後,應用程式可以隨時呼叫這些函式。 不過,為了達到最佳效能,應用程式應該在執行語句之後呼叫 SQLColAttribute、 SQLDescribeCol 和 SQLNumResultCols 。
您可以有多個元數據的並行呼叫。 ODBC 類別目錄 API 實作的基礎系統目錄程式可以在 ODBC 驅動程式使用靜態伺服器數據指標時呼叫。 這可讓應用程式同時處理對 ODBC 目錄函式的多個呼叫。
如果應用程式多次使用一組特定的元數據,它可能會受益於在第一次取得私用變數時快取資訊。 這可防止稍後呼叫 ODBC 目錄函式以取得相同的資訊,這會強制驅動程式往返伺服器。