小巧、快速、可靠。
三者擇其三。

SQLite C 介面

動態類型值物件 (動態型別值物件)

typedef struct sqlite3_value sqlite3_value;

SQLite 使用 sqlite3_value 物件來表示所有可以儲存在資料庫表格中的值。SQLite 對其儲存的值使用動態類型。儲存在 sqlite3_value 物件中的值可以是整數、浮點數、字串、BLOB 或 NULL。(SQLite 使用 sqlite3_value 物件來表示所有可以儲存在資料庫表格中的值。SQLite 使用動態型別來儲存值。儲存在 sqlite3_value 物件中的值可以是整數、浮點數、字串、BLOB 或 NULL。)

sqlite3_value 物件可以是「受保護的」或「未受保護的」。有些介面需要受保護的 sqlite3_value。其他介面則可以接受受保護或未受保護的 sqlite3_value。每個接受 sqlite3_value 參數的介面都會指定是否需要受保護的 sqlite3_value。sqlite3_value_dup() 介面可以用來從未受保護的 sqlite3_value 建構一個新的受保護的 sqlite3_value。(sqlite3_value 物件可以是「受保護的」或「未受保護的」。有些介面需要受保護的 sqlite3_value。其他介面則接受受保護或未受保護的 sqlite3_value。每個接受 sqlite3_value 參數的介面都會指定是否需要受保護的 sqlite3_value。可以使用 sqlite3_value_dup() 介面從未受保護的 sqlite3_value 建立新的受保護的 sqlite3_value。)

術語「受保護的」和「未受保護的」指的是是否持有互斥鎖 (mutex)。受保護的 sqlite3_value 物件會持有內部互斥鎖,而未受保護的 sqlite3_value 物件則不會。如果 SQLite 被編譯成單執行緒 (使用 SQLITE_THREADSAFE=0 並且 sqlite3_threadsafe() 返回 0),或者如果 SQLite 在其中一種簡化互斥鎖模式下運行,例如 SQLITE_CONFIG_SINGLETHREADSQLITE_CONFIG_MULTITHREAD,則受保護和未受保護的 sqlite3_value 物件之間沒有區別,它們可以互換使用。然而,為了最大的程式碼可移植性,建議應用程式即使在非嚴格要求的情況下,仍然區分受保護和未受保護的 sqlite3_value 物件。(術語「受保護的」和「未受保護的」指的是是否持有互斥鎖 (mutex)。受保護的 sqlite3_value 物件會持有內部互斥鎖,而未受保護的 sqlite3_value 物件則不會。如果 SQLite 被編譯成單執行緒 (使用 SQLITE_THREADSAFE=0sqlite3_threadsafe() 傳回 0),或者 SQLite 以簡化互斥鎖模式執行,例如 SQLITE_CONFIG_SINGLETHREADSQLITE_CONFIG_MULTITHREAD,則受保護和未受保護的 sqlite3_value 物件之間沒有區別,可以互換使用。然而,為了程式碼最大的可攜性,建議應用程式即使在非嚴格要求的情況下,仍然區分受保護和未受保護的 sqlite3_value 物件。)

作為參數傳遞到應用程式定義的 SQL 函式實作中的 sqlite3_value 物件是受保護的。sqlite3_vtab_rhs_value() 返回的 sqlite3_value 物件是受保護的。sqlite3_column_value() 返回的 sqlite3_value 物件是未受保護的。未受保護的 sqlite3_value 物件只能用作 sqlite3_result_value()sqlite3_bind_value()sqlite3_value_dup() 的參數。sqlite3_value_type() 系列的介面需要受保護的 sqlite3_value 物件。(作為參數傳遞至 應用程式定義的 SQL 函式實作中的 sqlite3_value 物件是受保護的。sqlite3_vtab_rhs_value() 傳回的 sqlite3_value 物件是受保護的。sqlite3_column_value() 傳回的 sqlite3_value 物件是未受保護的。未受保護的 sqlite3_value 物件只能作為 sqlite3_result_value()sqlite3_bind_value()sqlite3_value_dup() 的引數。sqlite3_value_type() 系列介面需要受保護的 sqlite3_value 物件。)

使用此物件的 19 個方法 (使用此物件的 19 個方法)

另請參閱物件常數函式的列表。(另請參閱 物件常數函式 的清單。)