我今天第一次用ADO,遇到一个问题,下面代码到最后一句出现运行时错误,异常退出.搞半天没搞懂,求助啊~~CXxx::Instance
{
..................... //初始化
CoInitialize(NULL); _ConnectionPtr m_pConnect;
_RecordsetPtr m_pRecordset; recodset.CreateInstance(_uuidof(Recordset));
m_pConnect.CreateInstance(_uuidof(Connection)); //连接数据库
m_pConnect->Open("Provider=MSDAORA.1;User ID=system;Data Source=dytdd;Persist Security Info=False",
"xxx","xxx",adModeUnknown);
//添加一条记录
_variant_t RecordsAffected;
CString strSql;
CString name = "name", psw = "password";
strSql.Format("INSERT INTO xxx.USER Values('%s','%s')",name,psw);
m_pConnect->Execute((_bstr_t)strSql,RecordsAffected,adCmdText);// runtime error ! ...........................
}
m_pConnect-> Execute((_bstr_t)strSql,NULL,adCmdText);
strSql.Format("INSERT INTO xxx.USER Values('%s','%s')",name,psw);
矛盾了。
是oracle错误还是VC的。
两个横线
检查一下是不是为空(即没有创建成功)
sqlStr += "', '"+ m_sCode +"')";
CString str = "select * from admin";
m_pConnection.CreateInstance(__uuidof(Connection));
try
{
m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=MyProject.mdb", "", "", adModeUnknown);
}
catch(_com_error e)
{
AfxMessageBox("Read Data Test.mdb Error!");
return;
}
_RecordsetPtr pRecordset;
pRecordset.CreateInstance(__uuidof(Recordset));
try
{
pRecordset->Open(_bstr_t(sqlStr),
m_pConnection.GetInterfacePtr(),
adOpenDynamic,
adLockOptimistic,
adCmdText);
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
}
// pRecordset->Close();
pRecordset.Release();
pRecordset = NULL;
m_pConnection->Close();
}
Insert data to DB.
All right!
strSql.Format("INSERT INTO xxx.USER Values('%s','%s')",name,psw); 试试这样:
strSql.Format("INSERT INTO USER,PASSWORD VALUES('%s','%s')",name,psw);
其中USER,PASSWORD是数据库中代表用户和密码的字段名称。