今天 太鬱悶了,一個小小的BUG浪費了我半天的時間。
在VC中,利用ADO操作數據庫的時候,要執行一條帶條件的SQL查詢,使用方法是:
CString SQLStr = "select * from TABLE WHERE ID=123" ;
_RecordsetPtr pRest;
pRest.CreateInstance(__uuidof(Recordset));
_CommandPtr pMyCom;
pMyCom.CreateInstance(__uuidof(Command));
pMyCom->ActiveConnection = pMyConnect;
pMyCom->CommandText = (_bstr_t)SQLStr;
pRest = pMyCom->Execute(&vNULL,&vNULL,adCmdText);
運行最後一句的時候老是出錯,似乎是指針出了問題。
研究了N久,就是沒找出毛病,最後把SQL語句換成:
CString ="123"
SQLStr = "select * from TABLE WHERE ID=" ;
SQLStr += "'";
SQLStr += BIANHAO ;
SQLStr += "'";
問題解決!
暈菜,才知道,是SQL語句的問題,道理其實很簡單,執行條件查詢的時候 ,當字段爲文本或字符串的時候,要
在變量兩邊加上' ',說實在的,這簡直是低級的錯誤,可是,千里之堤,潰於蟻穴。寫代碼,防微杜漸是沒有錯的。只有不斷地實踐,這些錯誤纔可能避免或是減少。