永发信息网

C++ sql 更新语句怎么执行

答案:2  悬赏:20  手机版
解决时间 2021-01-31 20:14
  • 提问者网友:欲劫无渡
  • 2021-01-31 01:57
请问执行update语句可以这样写吗?
strSQL.Format(_T("update JPolicy set UpperComCode = '%s' where COMCODE in '%s'"), d_ComCode, d_String);
wchar_t *pSQL = strSQL.AllocSysString();
m_policy1->Open(pSQL, Sp_JiBenFaData.GetInterfacePtr(), adOpenStatic, adLockOptimistic, adCmdText);

完整代码如下:

#include"stdafx.h"
#include
#include
#include
#include
using namespace std;
#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF", "adoEOF")

void main()
{

//连接数据库
CoInitialize(NULL); //初始化COM库环境

_ConnectionPtr Sp_JiBenFaData;
_ConnectionPtr Sp_LoginData;

HRESULT hr = Sp_JiBenFaData.CreateInstance(_uuidof(Connection));
HRESULT hr1 = Sp_LoginData.CreateInstance(_uuidof(Connection));

try {
_bstr_t conn_JiBenFaData = "Driver={sql server};server=*;uid=sa;pwd=*;database=JiBenFaData;";
Sp_JiBenFaData->Open(conn_JiBenFaData, "", "", adModeUnknown);
}
catch (_com_error &e) {
cout << e.Description() << endl;
}
try {
_bstr_t conn_LoginData = "Driver={sql server};server=*;uid=sa;pwd=*;database=LoginData;";
Sp_LoginData->Open(conn_LoginData, "", "", adModeUnknown);
}
catch (_com_error &e) {
cout << e.Description() << endl;
}

_RecordsetPtr m_policy1;
_RecordsetPtr m_dcompany;
if (FAILED(m_policy1.CreateInstance(_uuidof(Recordset)))){
cout << "记录集对象指针实例化失败!" << endl;
}
if (FAILED(m_dcompany.CreateInstance(_uuidof(Recordset)))){
cout << "记录集对象指针实例化失败!" << endl;
}

m_dcompany->Open("select * from dbo.ODS_DCOMPANY where UPPERCOMCODE ='35000000'", (IDispatch*)Sp_LoginData, adOpenDynamic, adLockOptimistic, adCmdText);
m_dcompany->MoveFirst();
CString strSQL;
while (!m_dcompany->adoEOF){
string d_ComCode = (char*)(_bstr_t)(m_dcompany->Fields->GetItem(_variant_t("COMCODE"))->Value);
string d_String = (char*)(_bstr_t)(m_dcompany->Fields->GetItem(_variant_t("ComString"))->Value);
cout << d_ComCode << endl;
cout << d_String << endl;

strSQL.Format(_T("update JPolicy set UpperComCode = '%s' where COMCODE in '%s'"), d_ComCode, d_String);
wchar_t *pSQL = strSQL.AllocSysString();
m_policy1->Open(pSQL, Sp_JiBenFaData.GetInterfacePtr(), adOpenStatic, adLockOptimistic, adCmdText);
m_dcompany->MoveNext();
}
system("pause");

}
编译通过,但跳出对话框报错:

Unhandled exception at 0x75E0C42D in test1.exe: Microsoft C++ exception: _com_error at memory location 0x0021F71C.
最佳答案
  • 五星知识达人网友:杯酒困英雄
  • 2021-01-31 03:13
_ConnectionPtr可以执行sql命令
_RecordsetPtr有对应的addnew,update操作
全部回答
  • 1楼网友:长青诗
  • 2021-01-31 03:21
sql:select * from 表 where 条件; 这个是sql语句,希望对你有所帮助。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯