如何生成MFC数据库类
1.在连接字符串的下拉框中选择需要连接的数据库类型,并按自己的实际情况修改连接字符串,如下图
2.在数据库的功能下拉框中选择生成程序代码,并点击建立连接按钮建立数据库连接。
3.数据库记录或者SQL命令框中按业务需求输入相应的SQL语句,并点击相应的按钮即可出现数据类编辑对话框,如下图
最终生成的MFC代码如下:
/*----------------------------------------------------------------------------------------------------------------
Version: AdoAssist 1.10
Time: 2011-11-09 16:36:25
SQL: SELECT * FROM tbl_Demo
----------------------------------------------------------------------------------------------------------------*/
#pragma once
class CDBDemo
{
public:
long m_lID; //0 ID adInteger
CString m_strGuid; //1 Guid adVarWChar
CString m_strName; //2 Name adVarWChar
long m_lAge; //3 Age adInteger
public:
// Database Interface
bool AdoRecord(const ADODB::CAdoRecordset& rs);
};
// Database Interface
inline bool CDBDemo::AdoRecord(const ADODB::CAdoRecordset& rs)
{
if (ADO_ISGETCOLLECT(rs))
{
ADO_OPTCOLLECT(_T("ID"), m_lID); //0
}
ADO_OPTCOLLECT(_T("Guid"), m_strGuid); //1
ADO_OPTCOLLECT(_T("Name"), m_strName); //2
ADO_OPTCOLLECT(_T("Age"), m_lAge); //3
return true;
}
也可以在2的功能中选择在DataGrid中显示,下图是数据库模式信息adSchemaTables显示所有表的详细信息。
一些功能说明以及建议:
1.如果生成的字段有非变量字符(中文等字符),请使用别名查询转换成变量字符。
2.ORACLE中查询的字符名称默认是大写的, 可以用类似的别名FIELDNAME AS "FieldName"进行查询。
3.联合查询的字段名称不能有重复,否则生成的类将可能无法编译过去。
4.当一个查询A是查询B的子集且这两个查询有相互赋值情况时最好是采用继承关系来生成类。
2010-09-06
+初始版本发布2011-11-09
-修复有时候用DataGrid显示报错“The rowset is not bookmarkable.”
+增加根据SQL生成MFC数据库类的功能
+增加导入和导出记录集的功能
+增加对多记录集的支持功能
+增加常用的ADO连接字符串的下拉选择