今天 太郁闷了,一个小小的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语句的问题,道理其实很简单,执行条件查询的时候 ,当字段为文本或字符串的时候,要
在变量两边加上' ',说实在的,这简直是低级的错误,可是,千里之堤,溃于蚁穴。写代码,防微杜渐是没有错的。只有不断地实践,这些错误才可能避免或是减少。