从一个 ASP 页面内部访问数据库的通常的方法是:
打开数据库连接
创建 ADO 记录集从记录集提取您需要的数据
关闭记录集关闭连接
void Conn(_bstr_t db_name)
{
_ConnectionPtr pConn; //Connection ADO数据接口,连接对象Connection的智能指针
_RecordsetPtr pRst; //记录集对象Recordset的智能指针
CoInitialize(NULL);//单线程的方式创建com对象
pConn.CreateInstance("ADODB.Connection");//创建一个连接对象
pConn->ConnectionString="Provider=MSDASQL.1;Persist Security Info=False;User ID=Admin;Data Source=MS Access Database;Initial Catalog=.\\db\\"+db_name;
pConn->CursorLocation=adUseClient;//指示游标服务的位置,Recordset 对象将从与它们相关联的连接上自动继承此设置,此属性在 Connection 或已关闭的 Recordset 上为读/写,在打开的 Recordset 上为只读。
pConn->Open("","","",adConnectUnspecified);// adConnectUnspecified,同步打开
pRst.CreateInstance(__uuidof(Recordset));//创建一个记录集
/提取数据
}
/提取数据
_bstr_t db_name = "radar.mdb";
ado.Conn(db_name);
ado.pRst = ado.pConn->Execute("select * from db1" , NULL , adCmdText);
while (!ado.pRst->adoEOF)
{
CString str;
str = (LPSTR)(_bstr_t)ado.pRst->GetCollect("ID");
m_List.SetItemText(k,0,(_bstr_t)ado.pRst->GetCollect("ID"));//m_List是变量名
}
//关闭
void Close()
{
if(pRst!=NULL)
pRst->Close();
pConn->Close();
pRst.Release();
pConn.Release();
CoUninitialize();
}
补充说明:
connection.Open ConnectionString, UserID, Password, Options
参数
ConnectionString 可选,字符串,包含连接信息。参阅 ConnectionString 属性可获得有效设置的详细信息。
UserID 可选,字符串,包含建立连接时所使用用户名。
Password 可选,字符串,包含建立连接时所使用密码。
Options 可选,ConnectOptionEnum 值。决定该方法是在连接建立之后(异步)还是连接建立之前(同步)返回。可以是如下某个常量:
常量说明
adConnectUnspecified(默认)同步打开连接。
adAsyncConnect异步打开连接。ConnectComplete 事件可以用于决定连接何时可用。