论文部分内容阅读
摘要:介绍了在VC6.0中利用ADO开发数据库应用程序的方法。
关键词:ADO VC 教据库
中图分类号:TIP311.13 文献标识码: A 文章编号:1002-2422(2008)01-0042-02
1 VC中应用ADO接口编程
Connection,Command,Recordset是ADO对象模型中三个主体对象。可以被独立地创建和释放,而不需要访问更高一层的数据对象。例如:ADO对象允许以打开的方式访问一个Recordset对象而不必首先建立一个与数据源的连接,使得ADO模型比其他对象模型更简单和更灵活。
1.1引入ADO库文件,初始化COM库
要使用ADO对象访问数据库,必须在工程的stdafx.h文件里用直接引入符号“#import”引入ADO。库文件,以使编译器能正确编译。代码如下所示:
#import“c:\program fdes\conunon fdes\system\ado\msado15.dll”no_namespace renBlne(“EOF”,“adoEOF”)
该语句声明在工程中使用ADO,但不使用ADO的名字空间,并且为了避免常数冲突,将常数“EOF”改名“adoEOF”。这样不需添加另外的头文件,就可以使用ADO接口了。
应用程序在调用ADO前,必须初始化COM库环境。在MFC应用程序里,一个比较好的方法是在应用程序主类的InitInstance()成员函数里使用MxOleInit()来初始化COM库环境。
1.2使用Connection对象连接数据库
一般通过Connection对象的Open方法来连接数据库,该方法的原型是:
HRESULT Conneetionl5::Open(_bstr_t ConnectionString,_bstr_t UserID,_bstr_t Password,long Options)
创建ADO的连接,首先要设置ADO连接对象的Con-nectionString属性,该属性提供所要连接的数据库类型、数据所处服务器、要访问的数据库和数据库访问的安全认证信息。UserID是用户名,Password是登录密码,Options是连接选项,用于指定Connection对象对数据的更新许可权。
常用的连接方式有以下几种:
(1)通过JET数据库引擎对ACCESS 2000数据库的连接:
m_pConnection->Open(“Provider=Microsoft.jet.OLEDB.4.0;Data Source=D:\TEST\testinfo.mdb”,“,”,adModeUnknown);
(2)通过DSN数据源对任何支持ODBC的数据库进行连接:
m_pConnection->Open(“Data Soume=adotest;UID=sa;PWD=;”,“”,“”,adModeUnknown);
(3)不通过DSN对SQL SERVER数据库进行连接:m_pConnecfion->Open(“driver=(SQL Server};Server=127.0.0.1;DATABASE=testinfo;U1D=sa;PWD=139”,“,”,adModeUnknown):
其中Server是SQL服务器的名称,DATABASE是库的名称。下面的一段代码演示了如何创建Connection对象实例及如何连接数据库并进行异常捕捉。
_ConnectionPtr m_pConnection;
HRESULT hr;
Try{
hr=m_pConnection.Createlnstance(“ADODB.Connecfion”);if(SUCCEEDED(hr))
{
hr=m_pConnection->Open(“Provider=Microsdt.Jet.OLEDB.4.0;Data Soume=tesfinfo.mdb”,“”,“”,adModeUnknown);
}
}
catch(_corn_error e)
{
CString errormessage;
errormessage.Format(“數据库连接失败!\r\n错误信息:%8”,e.Er-mrMessage());
AfxMessageBox(erromaessage);
}
1.3查询、处理数据,取得结果记录集
为了取得结果记录集,需要定义一个指向Recordset对象的指针:_RecordsetPtr m_pRecordset;并为其创建Record-set对象的实例:
m_pRecondset.CreateInstance(“ADODB.Recordset”);
查询、处理数据,需要用到SQL命令,SQL命令的执行可以采用下面三种形式。
(1)用Connection对象的Execute方法执行SQL命令。Execute方法的原型如下所示;
_Recordsetptr Connection 15::Execute(_bstr_t CommandText,VARI-ANT*RecordsA.fected,long options)
(2)利用Command对象来执行SQL命令,也可以利用Command对象执行SQL语句,并取得结果记录集,举例如下:
_CommandPtr m_pCommand;
m_pCommand.Createlnstance(“ADODB.Command”);
_variant_t vNULL;
VNULL.vt=VT_ERROR;
vNULL.scode=DISP_E_PARAMNOTFOUND;
m_pCommand->ActiveConnection=m_pConnection;
m_pCommand->CommandText=“SELECT*FROM test”;
m_pReeondset=m_pCommand->Execute(
关键词:ADO VC 教据库
中图分类号:TIP311.13 文献标识码: A 文章编号:1002-2422(2008)01-0042-02
1 VC中应用ADO接口编程
Connection,Command,Recordset是ADO对象模型中三个主体对象。可以被独立地创建和释放,而不需要访问更高一层的数据对象。例如:ADO对象允许以打开的方式访问一个Recordset对象而不必首先建立一个与数据源的连接,使得ADO模型比其他对象模型更简单和更灵活。
1.1引入ADO库文件,初始化COM库
要使用ADO对象访问数据库,必须在工程的stdafx.h文件里用直接引入符号“#import”引入ADO。库文件,以使编译器能正确编译。代码如下所示:
#import“c:\program fdes\conunon fdes\system\ado\msado15.dll”no_namespace renBlne(“EOF”,“adoEOF”)
该语句声明在工程中使用ADO,但不使用ADO的名字空间,并且为了避免常数冲突,将常数“EOF”改名“adoEOF”。这样不需添加另外的头文件,就可以使用ADO接口了。
应用程序在调用ADO前,必须初始化COM库环境。在MFC应用程序里,一个比较好的方法是在应用程序主类的InitInstance()成员函数里使用MxOleInit()来初始化COM库环境。
1.2使用Connection对象连接数据库
一般通过Connection对象的Open方法来连接数据库,该方法的原型是:
HRESULT Conneetionl5::Open(_bstr_t ConnectionString,_bstr_t UserID,_bstr_t Password,long Options)
创建ADO的连接,首先要设置ADO连接对象的Con-nectionString属性,该属性提供所要连接的数据库类型、数据所处服务器、要访问的数据库和数据库访问的安全认证信息。UserID是用户名,Password是登录密码,Options是连接选项,用于指定Connection对象对数据的更新许可权。
常用的连接方式有以下几种:
(1)通过JET数据库引擎对ACCESS 2000数据库的连接:
m_pConnection->Open(“Provider=Microsoft.jet.OLEDB.4.0;Data Source=D:\TEST\testinfo.mdb”,“,”,adModeUnknown);
(2)通过DSN数据源对任何支持ODBC的数据库进行连接:
m_pConnection->Open(“Data Soume=adotest;UID=sa;PWD=;”,“”,“”,adModeUnknown);
(3)不通过DSN对SQL SERVER数据库进行连接:m_pConnecfion->Open(“driver=(SQL Server};Server=127.0.0.1;DATABASE=testinfo;U1D=sa;PWD=139”,“,”,adModeUnknown):
其中Server是SQL服务器的名称,DATABASE是库的名称。下面的一段代码演示了如何创建Connection对象实例及如何连接数据库并进行异常捕捉。
_ConnectionPtr m_pConnection;
HRESULT hr;
Try{
hr=m_pConnection.Createlnstance(“ADODB.Connecfion”);if(SUCCEEDED(hr))
{
hr=m_pConnection->Open(“Provider=Microsdt.Jet.OLEDB.4.0;Data Soume=tesfinfo.mdb”,“”,“”,adModeUnknown);
}
}
catch(_corn_error e)
{
CString errormessage;
errormessage.Format(“數据库连接失败!\r\n错误信息:%8”,e.Er-mrMessage());
AfxMessageBox(erromaessage);
}
1.3查询、处理数据,取得结果记录集
为了取得结果记录集,需要定义一个指向Recordset对象的指针:_RecordsetPtr m_pRecordset;并为其创建Record-set对象的实例:
m_pRecondset.CreateInstance(“ADODB.Recordset”);
查询、处理数据,需要用到SQL命令,SQL命令的执行可以采用下面三种形式。
(1)用Connection对象的Execute方法执行SQL命令。Execute方法的原型如下所示;
_Recordsetptr Connection 15::Execute(_bstr_t CommandText,VARI-ANT*RecordsA.fected,long options)
(2)利用Command对象来执行SQL命令,也可以利用Command对象执行SQL语句,并取得结果记录集,举例如下:
_CommandPtr m_pCommand;
m_pCommand.Createlnstance(“ADODB.Command”);
_variant_t vNULL;
VNULL.vt=VT_ERROR;
vNULL.scode=DISP_E_PARAMNOTFOUND;
m_pCommand->ActiveConnection=m_pConnection;
m_pCommand->CommandText=“SELECT*FROM test”;
m_pReeondset=m_pCommand->Execute(