使用MFC ADO 操作数据库
写了一个sql语句执行,可以系统会自动增加一个',导致最后查询不正确求大神解答
AClookupsqlstr=_T("select * from SA_SaleDelivery_b where idSaleDeliveryDTO in (select ID from SA_SaleDelivery where code='SA-2015-08-0003')");
会自动变成
AClookupsqlstr=_T("select * from SA_SaleDelivery_b where idSaleDeliveryDTO in (select ID from SA_SaleDelivery where code=''SA-2015-08-0003'')"); 操作函数为
_RecordsetPtr& CADOConn::GetRecordSet(_bstr_t bstrSQL){ try { //连接数据库,如果connection为空则重新连接 if (m_pConnection == NULL) OnInitADOConn(); //创建记录集对象 m_pRecordset.CreateInstance(__uuidof(Recordset)); //取得表中的记录 m_pRecordset->Open(bstrSQL, m_pConnection.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adCmdText); } catch (_com_error e) { e.Description(); } //返回记录集 return m_pRecordset;}
写了一个sql语句执行,可以系统会自动增加一个',导致最后查询不正确求大神解答
AClookupsqlstr=_T("select * from SA_SaleDelivery_b where idSaleDeliveryDTO in (select ID from SA_SaleDelivery where code='SA-2015-08-0003')");
会自动变成
AClookupsqlstr=_T("select * from SA_SaleDelivery_b where idSaleDeliveryDTO in (select ID from SA_SaleDelivery where code=''SA-2015-08-0003'')"); 操作函数为
_RecordsetPtr& CADOConn::GetRecordSet(_bstr_t bstrSQL){ try { //连接数据库,如果connection为空则重新连接 if (m_pConnection == NULL) OnInitADOConn(); //创建记录集对象 m_pRecordset.CreateInstance(__uuidof(Recordset)); //取得表中的记录 m_pRecordset->Open(bstrSQL, m_pConnection.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adCmdText); } catch (_com_error e) { e.Description(); } //返回记录集 return m_pRecordset;}
select * from mytable where id = 'ABS and cc=1234'
'ABS and cc=1234' 本来就是一段字符串,
但是如果去掉 ‘’ select * from mytable where id = ABS and cc=1234 就变成两个限制条件