ADO编程应用(2)

作者:袖梨 2022-06-30
下面是一个简单的采用了#import方法的基于ADO应用的示例代码:
#include
#import rename(“EOF”, “adoEOF”)
void main()
{
HRESULT hr = S_OK;
//因为没有在#import中指定no_namespace,所以必须采用ADODB::这样的形式来定义变量类型
ADODB::_RecordsetPtr Rs1 = NULL;
//通过ODBC建立ADO连接
_bstr_t Connect( “DSN=AdoDemo;UID=sa;PWD=;” );
_bstr_t Source ( “SELECT * FROM Authors” );
CoInitialize();
//初始化Rs1对象
hr = Rs1.CreateInstance( __uuidof( ADODB::Recordset ) );
//省略对返回值hr的判断
Rs1->Open( Source,
Connect,
ADODB::adOpenForwardOnly,
ADODB::adLockReadOnly,
-1 );
//此处可以添加对记录集Rs1进行操作的代码
Rs1->Close();
Rs1 = NULL;
::MessageBox( NULL,“Success!”,“”,MB_OK );
CoUninitialize();
}
2.用MFC OLE创建ADO应用
MFC OLE同样能够封装(wrapper)一个类型库,但是与#import不同,它不能从类型库中产生枚举类型。MFC类CString和COleVariant隐藏了BSTRS和Variants的细节。由MFC OLE产生的类都继承了类ColeDispatchDriver,由ADO产生的失败的HRESULTS被封装在类ColeDispatchException中。
用MFC OLE ClassWizard创建ADO应用的步骤如下:
●从Tools菜单中,选择Options选项中的Directories tab条目,在Show Directories中的Library Files中增加路径C:program filescommon filessystemado,设置包含ADO类型库的路径。
●从View菜单中,激活ClassWizard,点击Add Class按钮并选择“From A Type Library...”选项,然后在Type Library dialog box对话框中,从C:program filescommon filessystemado中选择文件msado15.dll,在Confirm Classes对话框中,选择所有列出的类并按OK按钮退出ClassWizard。这样,ClassWizard便生成了两个文件msado15.h和msado15.cpp。
下面是实现ADO应用的示例代码:
//初始化COM对象
AfxOleInit();
...
//定义数据集对象
_Recordset Rs1;
COleException e;
COleVariant Connect( “DSN=AdoDemo;UID=sa;PWD=;” );
COleVariant Source ( “SELECT * FROM Authors” );

相关文章

精彩推荐