MFC ADO 数据库连接

/*

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

Delphi TThread中文注释2009-10-22 16:58TThread是一个抽象类,可以创建几个独立的线程。 类关系 TObject 在一个多线程的应用程序中创建一个TThread的后子类代表一个线程。每一新子类的TThread对象的实例是一个新的线程。从TThread派生的多线程实例可以构成Delphi的多线程应用程序。    当一个应用程序运行时,应用程序就被载入内存准备执行。此时,它成为包含一个或多个线程的进程,每个线程含有数据、代码和系统资源。线程执行应用程序的部分内容,并由系统分配CPU时间。同一进程的所有线程共享同一地址空间,可以访问进程的全局变量。线程通过以下工作改善应用的性能:管理多通信设备的输入。    区分任务的优先级。优先级高的处理紧急的任务。优先级低的处理其他任务。    以下是使用线程的一些建议:    同时跟踪太多的线程消耗CPU时间。对单处理器系统,一个进程最多有16个线程。    当多个线程更新相同的资源时,应使线程同步以避免冲突。    大多数访问VCL对象和更新窗体的方法必须从主VCL线程内部调用。    以下为创建和使用一个新线程的过程:    (1)单击File|New|Thread菜单项,创建一个包含对象的新单元,该对象源于TThread类。    (2)定义新线程对象和Create方法。    (3)通过插入线程执行时需要的代码定义线程对象和Execute方法。    (4)将使用VCL组件的任何调用传递给Synchronize方法,以避免多线程冲突。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值