本例是通过Insert的 New ATL Object中的 OLE DB利用 ODBC Driver连接的 Sybase数据库表 采用COMMAND方式CString str="Insert into table1(a,b) value (1,2);"
table1.open(m_session,str,&propset)
上述语句可行吗?
如不行,正确的方法应是?
table1.open(m_session,str,&propset)
上述语句可行吗?
如不行,正确的方法应是?
lpctszCmdText = "Insert into table1(a,b) value (1,2);" _CommandPtr pCommand;
_variant_t varNull;
varNull.vt=VT_ERROR;
varNull.scode=DISP_E_PARAMNOTFOUND;
HRESULT hr;
try{
hr=pCommand.CreateInstance(__uuidof(Command));
if(SUCCEEDED(hr))
{
gl_pConnection->BeginTrans();
pCommand->ActiveConnection=gl_pConnection;
pCommand->CommandType=adCmdText;
pCommand->CommandText=_bstr_t(lpctszCmdText);
pCommand->Execute(&varNull,&varNull,adCmdUnknown);
gl_pConnection->CommitTrans();
}
}
catch(_com_error &e)
{
_bstr_t bstrSource(e.Source());
_bstr_t bstrDescription(e.Description()); CString csError;
csError.Format("编号:%08x\n编号含义:%s\n源代码:%s\n描述:%s\n",
e.Error(),e.ErrorMessage(),(LPCTSTR)bstrSource,(LPCTSTR)bstrDescription);
MessageBox(NULL,(LPCTSTR)csError,"[ExecuteScriptCommnadText]由#import引进的对象出现异常",MB_OK|MB_ICONSTOP);
gl_pConnection->RollbackTrans();//回滚事务
}
catch(...)
{
MessageBox(NULL,"不可捕捉的异常","[ExecuteScriptCommnadText]由#import引进的对象出现异常",MB_OK|MB_ICONSTOP);
gl_pConnection->RollbackTrans();//回滚事务
}