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

📄 adodatabase.h

📁 只是老师布置的一个作业而已。VC下编写的加油站系统
💻 H
字号:
#if !defined __ADO_DATABASE
#define __ADO_DATABASE

#define MAX_FIELD_LENGTH 255
#define MAX_FIELD_TYPE_LENGTH 50

#import "C:\Program Files\Common Files\System\ADO\msado15.dll" \
    no_namespace rename("EOF", "EndOfFile")

#include "stdio.h"
#include <vector>

#ifndef STRING
#define STRING(x)	(LPCSTR)(_bstr_t)(x)
#endif

#ifndef GET_BUFFER
#define GET_BUFFER(x, y) strcpy(x, y.GetBuffer(y.GetLength())); y.ReleaseBuffer()
#endif

#ifndef GET_INT
#define GET_INT(x,y) x=atoi(y.GetBuffer(y.GetLength()));y.ReleaseBuffer()
#endif

#ifndef GET_FLOAT
#define GET_FLOAT(x,y) x=(float)atof(y.GetBuffer(y.GetLength()));y.ReleaseBuffer()
#endif

using namespace std;

class CADODataBase
{
protected:

	_RecordsetPtr m_pRS;
	_ConnectionPtr m_pConn;

	char m_pConnString[512];
	char m_pUserId[256];
	char m_pUserPassword[256];
	char m_pQueryString[2048];
	char m_pProvider[256];
	char m_pDataSource[MAX_PATH];
	char m_pInitialCatalog[256];
	char m_pExtendedProperties[256];
	
	void ParseColumnTypes(DataTypeEnum a_DataTypes,char* l_pchColumnType);
public:
	//CADODataBase();
	virtual ~CADODataBase();
	
	HRESULT Init();

	void SetUserId(const char* a_pchUserIdString);
	void SetUserPassword(const char* a_pchUserPasswordString);
	void SetQueryString(const char* a_pchQueryString);
	void SetProvider(const char* a_pchProviderString);
	void SetDataSource(const char* a_DataSourceString);
	void SetInitialCatalog(const char* a_pchIntitalCatalogString);
	void SetExtendedProperties(const char* a_pchExtendedPrpoertiesString);


	char* BuildConnString();
	void SetConnString(const char* a_pchConnString);
	void SetConnectionTimeOut(const int a_iConnTimeOut);
	HRESULT ConnectToDB();
	
	_RecordsetPtr GetRecordSet();
	void PrintRecordSet(const long a_lNoOfRecords) ;//printing to console for debugging purposes
	
	_RecordsetPtr ExecuteQuery();//executes the m_pQueryString
	_RecordsetPtr ExecuteQuery(char* a_pchQueryString);//executes the given query string

	long GetNoOfColumns();
	HRESULT GetColumnNames(char a_pchColumnName[][MAX_FIELD_LENGTH],char a_pchColumnType[][MAX_FIELD_TYPE_LENGTH]);	
	HRESULT GetOneRow(const long a_lNoOfColumns,_variant_t* a_varOneRowData);

	HRESULT CreateTable(const char* a_pchTableName,const char* a_pchColumnName,...);//TableName,column name,column type,...	
	HRESULT InsertRecord(const char* a_pchTableName,const char* a_pchColumns,...);//TableName,fields1,...
	
	void TraceCOMExceptions(_com_error& a_refComError);
	void TraceProviderExceptions(_ConnectionPtr a_ConPtrError);
	
	HRESULT CloseConn();
	HRESULT CloseRecordSet();

};

#endif

⌨️ 快捷键说明

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