MFC ADO 数据库连接

来源:互联网 发布:java redis缓存用法 编辑:程序博客网 时间:2024/05/21 08:45
/*

从一个 ASP 页面内部访问数据库的通常的方法是:


创建一个到数据库的 ADO 连接

打开数据库连接

创建 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 事件可以用于决定连接何时可用。