⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 getdatabase.h

📁 本源码中应用了sqlite的读写操作 要记着在解压本程序之后不能放在有中文的目录地下 要不然会报错 本程序支持sqlite的插入查询删除等功能 可输入select * from tbArodrome
💻 H
字号:
// DatabaseAccess.h: interface for the CDatabaseAccess class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_DATABASEACCESS_H__19163588_441F_4B21_B354_877412B2B46A__INCLUDED_)
#define AFX_DATABASEACCESS_H__19163588_441F_4B21_B354_877412B2B46A__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include <Afxtempl.h>

// 描述_ParameterPtr对象信息的结构
typedef struct tagParameterInfo{			// 参数信息
	_bstr_t						Name;		// 参数名字 
	enum DataTypeEnum			Type;		// 参数类型
	enum ParameterDirectionEnum	Direction;	// 参数方向(输入、输出)
	long						Size;		// 参数尺寸
	_variant_t					Value;		// 参数值。
}PARAMETERINFO, *PPARAMETERINFO;

// 使用前在StdAfx.h中加入#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF", "adoEOF")
// 访问数据库前先用::CoInitialize(NULL)初始化COM环境。
// 程序退出时使用::CoUninitialize()释放资源。

class CDatabaseAccess  
{
private:
	bool				m_bIsOracle;	//ORACLE与SQLServer切换标志。默认是ORACLE数据库
	_ConnectionPtr		m_pCon;			//连接对象
public:

	int GetRecordSetCount(_RecordsetPtr m);
	//连接本地数据库(无密码)
	BOOL ConnectDB(char *DatabaseName);
	
	//连接本地数据库(有密码) 通过ODBC方式连接
	BOOL ConnectDB(const char *DatabaseName,char *PassWord);
	
	CDatabaseAccess();
	
	virtual ~CDatabaseAccess();
	
	// 连接到数据库服务器,DSN方式 1成功 0失败
	BOOL ConnectDB(char *pcDSNName,char *pcUserName,char *pcUserPassword);
	
	// 连接到数据库服务器,需要IP,端口和Oracle全局数据库名或SID的连接方式。1成功 0失败.
	BOOL ConnectDB(const char *pcUserName ,const char *pcUserPassword ,const char *pcServerIP ,const char *pcServerPort="1024" ,const char *pcConnectServiceName = "MFD");
	
	//关闭与数据库的连接
	void CloseConnect();
	
	//设置数据库类型(ORACLE与SQLServer)
	void SetDatabaseType(bool bIsOracle=true);
	
	// 执行存储过程(普通存储过程,即非包中的),非零-正确执行;0-参数个数为负数。
	BOOL ExecuteProcedure(const char *pcProcedureName , PARAMETERINFO aPrameterInfo[],BYTE bCount);
	
	// 执行存储过程返回记录集的地址。在此函数中使用约定包名:mfd_callpkg。字段列表用"逗号"隔开如:"empid,empname"。
	_RecordsetPtr *CDatabaseAccess::ExecProGetRecordset(const char *pcProcedureName , PARAMETERINFO aParameterInfo[] , BYTE bParametersCount , const char *pcFieldsList , const char *pcPackageName = "mfd_callpkg");
	
	// 无参数的存储过程(普通存储过程,非包中)。
	_RecordsetPtr *CDatabaseAccess::ExecProGetRecordset(const char *pcProcedureName);
	
	// 无参数的存储过程
	_RecordsetPtr *CDatabaseAccess::ExecProGetRecordset(const char *pcProcedureName , const char *pcFieldsList);
	
	// 执行SQL语句
	_RecordsetPtr *ExecuteSQLSentence( const char *pcSentence);
	
};

#endif // !defined(AFX_DATABASEACCESS_H__19163588_441F_4B21_B354_877412B2B46A__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -