const char *sqlite3_column_database_name(sqlite3_stmt*,int); const void *sqlite3_column_database_name16(sqlite3_stmt*,int); const char *sqlite3_column_table_name(sqlite3_stmt*,int); const void *sqlite3_column_table_name16(sqlite3_stmt*,int); const char *sqlite3_column_origin_name(sqlite3_stmt*,int); const void *sqlite3_column_origin_name16(sqlite3_stmt*,int);
這些常式提供了一種方法來確定資料庫、表格和表格欄位,這些是 SELECT 陳述式中特定結果欄位的來源。資料庫、表格或欄位的名稱可以 UTF-8 或 UTF-16 字串的形式返回。 _database_ 常式返回資料庫名稱,_table_ 常式返回表格名稱,而 origin_ 常式返回欄位名稱。返回的字串在使用 sqlite3_finalize() 銷毀 預編譯語句 之前、或者在特定執行中第一次呼叫 sqlite3_step() 時自動重新準備語句之前、或者在以不同編碼再次請求相同資訊之前,都是有效的。
返回的名稱是資料庫、表格和欄位的原始未別名名稱。
這些介面的第一個參數是一個 預編譯語句。這些函式返回關於語句返回的第 N 個結果欄位的資訊,其中 N 是第二個函式參數。對於這些常式,最左邊的欄位是欄位 0。
如果語句返回的第 N 個欄位是一個表達式或子查詢,而不是一個欄位值,那麼所有這些函式都會返回 NULL。如果發生記憶體配置錯誤,這些常式也可能返回 NULL。否則,它們會返回查詢結果欄位提取來源的附加資料庫、表格或欄位的名稱。
與所有其他 SQLite API 一樣,名稱以 "16" 結尾的 API 返回 UTF-16 編碼的字串,而其他函式返回 UTF-8。
只有在使用 SQLITE_ENABLE_COLUMN_METADATA C 預處理器符號編譯程式庫時,這些 API 才可用。