您的位置:首页 > 编程语言 > C语言/C++

How to access database using C++ & ADO - 如何用C++和ADO访问数据库

2009-02-11 09:51 886 查看
一、在:CWinApp::InitInstance 函数中用AfxOleInit初始化 COM

if (!AfxOleInit())
{
AfxMessageBox("AfxOleInit Failed!");
return FALSE;
}

二、用 #Import 引入 ADO 对象 Dll:msado15.dll

#import "c:/program files/common files/system/ado/msado15.dll" no_namespace rename("EOF", "adoEOF")

//Notice:这句话输入完毕后,VC就会在:程序生成目录中(Debug/Release)自动产生两个文件:
// msado15.tlh
// msado15.tli

三、使用 ADO 访问数据库

void CPrjADOAccessDatabaseTestDlg::OnbtnReadSqlServer()
{
// TODO: Add your control notification handler code here

CString strSql;
CString strMsg;
long lRecordCount;

_RecordsetPtr rs;
_ConnectionPtr conn;

_variant_t var;
//---------------------------------------------------------
rs.CreateInstance(__uuidof(Recordset));
conn.CreateInstance(__uuidof(Connection));
//---------------------------------------------------------
strSql = "select FirstName from dbo.Employees";

//连接数据库

conn->Open("Provider=SQLOLEDB;SERVER=127.0.0.1;DATABASE=AIS20070417160827;UID=sa;PWD=sa","","",-1);

//---------------------------------------------------------
//记录集取数
rs->CursorLocation = adUseClient;
rs->CursorType = adOpenForwardOnly;
rs->LockType = adLockReadOnly;

rs->Open("select * from t_User",conn.GetInterfacePtr(),adOpenForwardOnly,adLockReadOnly,adCmdText);

//遍历记录集
while(!rs->adoEOF)
{

var = rs->Fields->GetItem("FName")->Value;

strMsg = (LPCSTR)_bstr_t(var);

MessageBox(strMsg);

strMsg.ReleaseBuffer();

rs->MoveNext();

}

//清理战场,关闭对象
rs->Close();
conn->Close();

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐