ADO VC++(www.cppentry.com) Extensions是ADO 2.0 版本提供的新接口,它支持不通过 VARIANT 便可将数据检索到本地的 C/C++(www.cppentry.com) 数据类型中。此外,它还提供能简化接口使用过程的预处理宏,这些扩展程序使用简便并且性能良好。
ADO VC++(www.cppentry.com) Extensions 可将 Recordset 对象的字段映射到 C/C++(www.cppentry.com) 变量,字段与变量的映射称为绑定条目。预处理宏用来定义数值、定长和变长变量的绑定。
我们以一个简单的程序为例,说明如何在VC++(www.cppentry.com)中使用带Extensions 的ADO访问SQL SERVER数据库。我们假定安装了SQL SERVER数据库的Netbios名为nt_sqlserver,要访问的数据库名为pubs,操作的表名为authors。
我们可以新建一个空的工程,选择Win32 Console Application类型。先加入一个头文件,并命名为ADOtest.h,源代码如下:
//要使用 VC++(www.cppentry.com) Extensions,必须在应用程序中包含的头文件:
#include "icrsint.h"
// 该类从"authors"表中 摘取出 fname, lname, city和state 四个字段
class CAuthorsRs : public CADORecordBinding
{
BEGIN_ADO_BINDING(CAuthorsRs)
ADO_VARIABLE_LENGTH_ENTRY2(1, adVarChar, m_au_fname,
sizeof(m_au_fname), l_fnameStatus, TRUE)
ADO_VARIABLE_LENGTH_ENTRY2(2, adVarChar, m_au_lname,
sizeof(m_au_lname), l_lnameStatus, TRUE)
ADO_VARIABLE_LENGTH_ENTRY2(3, adVarChar, m_au_city,
sizeof(m_au_city), l_cityStatus, TRUE)
ADO_VARIABLE_LENGTH_ENTRY2(4, adChar, m_au_state,
sizeof(m_au_state), l_stateStatus, TRUE)
END_ADO_BINDING()
public:
char m_au_fname[21];
ULONG l_fnameStatus;
char m_au_lname[41];
ULONG l_lnameStatus;
char m_au_city[21];
ULONG l_cityStatus;
char m_au_state[3];
ULONG l_stateStatus;
}; |
注意,将 BEGIN_ADO_BINDING 和 END_ADO_BINDING 宏之间的绑定条目用括号括起。不要在绑定条目结尾使用逗号或分号,因为这些定界符仅限在宏中使用。
|