本文欢迎转载,唯请注明出处及作者 blackcolor@263.net
---------------------------------------------------
实战COM(06)----在COM中使用Ole DB连接数据库
一、建立组件
1)创建一个进程内组件Step04,在创建的窗口“ATL COM AppWizard - Step 1 of 1”中
选中“Allow merging of proxy/stub code”,加入一个“Simple Object”,取名为“Simple04”
2)在该组件中加入以下方法:
HRESULT ConnectToSQL(void);
HRESULT MoveNext(void);
HRESULT GetAu_id([out, retval]BSTR * bAu_id);
HRESULT GetAu_lname([out, retval]BSTR * bAu_lname);
HRESULT GetAu_fname([out, retval]BSTR * bAu_fname);
HRESULT DisConnect(void);
3)如果你对以上两个步骤还不熟悉,请参考“实战COM(02)----创建一个进程内组件”一文
4)修改代码如下:
文件:Simple04.h
// Simple04.h : Declaration of the CSimple04
#include <atldbcli.h> // 数据库操作
#ifndef __SIMPLE04_H_
#define __SIMPLE04_H_
#include "resource.h" // main symbols
// 定义一个新类
class CAuthors
{
public:
// 数据--宽度来源于表Authors
CHAR m_szAu_Id[11];
CHAR m_szAu_lName[40];
CHAR m_szAu_fName[20];
// 输出绑定
BEGIN_COLUMN_MAP(CAuthors)
COLUMN_ENTRY(1, m_szAu_Id)
COLUMN_ENTRY(2, m_szAu_lName)
COLUMN_ENTRY(3, m_szAu_fName)
END_COLUMN_MAP()
// 参数绑定
BEGIN_PARAM_MAP(CAuthors)
COLUMN_ENTRY(1, m_szAu_lName)
END_PARAM_MAP()
};
/
// CSimple04
class ATL_NO_VTABLE CSimple04 :
public CComObjectRootEx<CComSingleThreadModel>