小巧、快速、可靠。
三選一。

SQLite C 介面

執行時期限制

int sqlite3_limit(sqlite3*, int id, int newVal);

此介面允許針對每個連線個別限制各種結構的大小。第一個參數是欲設定或查詢限制的資料庫連線。第二個參數是限制類別之一,用於定義要限制大小的結構類別。第三個參數是該結構的新限制值。

如果新限制值為負數,則限制保持不變。對於每個限制類別 SQLITE_LIMIT_NAME,都有一個在編譯時期由稱為 SQLITE_MAX_NAME 的 C 前置處理器巨集設定的硬上限。(名稱中的 "_LIMIT_" 會變更為 "_MAX_"。)嘗試將限制增加到超過其硬上限的數值時,會自動截斷為硬上限。

無論限制是否已變更,sqlite3_limit() 介面都會返回限制的先前值。因此,若要查詢目前的限制值而不變更它,只需將第三個參數設為 -1 即可呼叫此介面。

執行時期限制旨在用於同時管理自身內部資料庫和由不受信任的外部來源控制的資料庫的應用程式。例如,網頁瀏覽器可能擁有自己的資料庫來儲存瀏覽紀錄,以及由從網際網路下載的 JavaScript 應用程式控制的個別資料庫。內部資料庫可以使用較大的預設限制。由外部來源管理的資料庫可以設定較小的限制,以防止阻斷服務攻擊。開發人員可能還需要使用 sqlite3_set_authorizer() 介面來進一步控制不受信任的 SQL。可以使用 max_page_count PRAGMA 來限制由不受信任的指令碼建立的資料庫大小。

未來版本中可能會新增執行時期限制類別。

另請參閱物件常數函式的清單。