我用ADO来访问ORACLE,已经成功打开与数据库的连接(如下),但不知道怎么用SQL语句来操作,请高手帮忙!(最好贴出代码)
_ConnectionPtr pConn("ADODB.Connection");
_RecordsetPtr pRst("ADODB.Recordset");
pConn->Open("Provider=MSDAORA.1;Password=manager;User ID=system;Data Source=yhs;Persist Security Info=True","","",adConnectUnspecified);
_ConnectionPtr pConn("ADODB.Connection");
_RecordsetPtr pRst("ADODB.Recordset");
pConn->Open("Provider=MSDAORA.1;Password=manager;User ID=system;Data Source=yhs;Persist Security Info=True","","",adConnectUnspecified);
CString strCmd;
_ConnectionPtr m_pConnection;
strCmd.Format("insert into DemoTable(Name,Age) values ('%s',%d)",m_Name,atol(m_Age));
m_pConnection->Execute((LPCSTR)strCmd,&RecordsAffected,adCmdText);OK?
Execute方法的原型如下所示:
_RecordsetPtr Connection15::Execute ( _bstr_t CommandText, VARIANT * RecordsAffected, long Options ) 其中CommandText是命令字串,通常是SQL命令。参数RecordsAffected是操作完成后所影响的行数, 参数Options表示CommandText中内容的类型,Options可以取如下值之一:
adCmdText:表明CommandText是文本命令
adCmdTable:表明CommandText是一个表名
adCmdProc:表明CommandText是一个存储过程
adCmdUnknown:未知
中的RecordsAffected的含义能介绍一下吗?
具体如何用,你自己查一下MSDN 吧。我很难说清楚
// 连接对记录集对象
_RecordsetPtr m_pRs; CString strName;
CString strPassWord;
CString LinkStr;
LinkStr.Format("SELECT * FROM 管理用户表 where 管理用户ID='%s'",strName);
m_pRs.CreateInstance("ADODB.Recordset"); //准备数据库记录集接口
try
{
m_pRs->Open("Provider=MSDAORA.1;Password=manager;User ID=system;Data Source=yhs;Persist Security Info=True","","",adConnectUnspecified);
}
catch(_com_error *e)
{
::MessageBox(0,_T(e->ErrorMessage()),_T("严重错误!"),MB_OK );
} try
{
if(VARIANT_FALSE == m_pRs->EndOfFile)
{
_variant_t vPassWordDB;
CString strTemp; vPassWordDB=m_pRs->GetCollect("管理用户密码");
strTemp = (char*)_bstr_t(vPassWordDB);
vPassWordDB.Clear();
if(strTemp!=strPassWord)
return false;
else
return true;
}
return false;
}
catch(_com_error *e)
{
::MessageBox(0,_T(e->ErrorMessage()),_T("严重错误!"),MB_OK );
}