聲明:我是n00b。ODBC:如何處理布爾值?
好像ODBC不支持BOOLEAN類型?這是真的?
如果是這樣,什麼是標準kludgearound?
編輯:我在Windows上使用ADO與Delphi編寫數據,但PHP 5將其讀回。
聲明:我是n00b。ODBC:如何處理布爾值?
好像ODBC不支持BOOLEAN類型?這是真的?
如果是這樣,什麼是標準kludgearound?
編輯:我在Windows上使用ADO與Delphi編寫數據,但PHP 5將其讀回。
SQL本身傳統上不支持布爾類型,所以ODBC只是反映了這一點。由於ODBC旨在提供跨數據庫的可移植性,通常最好在數據庫中實現布爾值作爲標準類型之一,例如包含'Y'或'N'的CHAR(1),而不是使用特定於供應商的特定類型。
還有SQL_C_BIT,但您需要查找給定驅動程序對每種SQL類型使用的內容。例如,用於bool的MySQL uses SQL_C_CHAR。
+1我在Windows上使用Delphi的ADO編寫數據,但PHP 5將其讀回。 – Mawg 2010-06-02 11:01:23
但是是什麼驅動程序?例如,MySQL的是MySQL Connector/ODBC。 – 2010-06-02 11:03:50
我相信這取決於實際的SQL服務器實現。您可以檢查ODBC驅動程序/數據源設置,如果您是在Windows下進行的 - 可能會有諸如Bool As Char等選項。
+1但是,「我相信這取決於實際的SQL服務器實現」 - 當然,這就是ODBC從我身上隱藏的東西?馬修在說到司機時可能會更接近標準(?) – Mawg 2010-06-02 11:00:39
謝謝Neil,這似乎是合理的(並且在某種程度上比使用0或1更好)。 – Mawg 2010-06-02 11:18:40
我不同意。 ODBC是一個C API,所以使用0和1更容易(雖然不是必需的)。 – 2010-06-02 11:24:29
@Mthethew在技術上並不容易,Y和N(對於英語用戶)自我記錄,並且整數佔用更多空間數據庫。 – 2010-06-02 11:40:05