使用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;
}
uj5u.com熱心網友回復:
沒人回答最起碼來個挽尊的uj5u.com熱心網友回復:
\''這個符號好像要加\
uj5u.com熱心網友回復:
加了就com error了 親
uj5u.com熱心網友回復:
AClookupsqlstr=_T("select * from SA_SaleDelivery_b where idSaleDeliveryDTO in (select ID from SA_SaleDelivery where code='SA-2015-08-0003')");我運行這句,沒看到'變成'',你是怎么看到的
uj5u.com熱心網友回復:


uj5u.com熱心網友回復:
我怎么看也像漢字的符號。uj5u.com熱心網友回復:
資料庫的字串 本來就是要 ‘’ 的吧? 否則容易被當成是陳述句select * from mytable where id = 'ABS and cc=1234'
'ABS and cc=1234' 本來就是一段字串,
但是如果去掉 ‘’ select * from mytable where id = ABS and cc=1234 就變成兩個限制條件
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/130525.html
標籤:數據庫
下一篇:mfc開發的ocx如何給欄位分類
