?? getdatabase.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 + -