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

📄 guiadodb.h

📁 这是一个串口监视程序
💻 H
字号:
#pragma once
//-----------------------------------------------------------------------//
// This is a part of the GuiLib MFC Extention.							 //	
// Autor  :  Francisco Campos											 //
// (C) 2002 Francisco Campos <www.beyondata.com> All rights reserved     //
// This code is provided "as is", with absolutely no warranty expressed  //
// or implied. Any use is at your own risk.								 //		
// You must obtain the author's consent before you can include this code //
// in a software library.												 //
// If the source code in  this file is used in any application			 //
// then acknowledgement must be made to the author of this program		 //	
// fco_campos@tutopia.com													 //
//-----------------------------------------------------------------------//

//#import "\Program Files\Common Files\System\ADO\msado15.dll" rename_namespace("ADOCG") rename("EOF", "EndOfFile")
//#import "msado15.dll" rename_namespace("ADOCG") rename("EOF", "EndOfFile")

using namespace ADOCG;

#include "icrsint.h"
#include "GuiLib.h" 
//---------------------------------------------------------------------------------------


class GUILIBDLLEXPORT CGuiField
{
protected:
	FieldPtr field;
public:
	CGuiField(void);
	~CGuiField(void);
public:

	FieldPtr GetFieldPtr(){return field;};
	void Attach(FieldPtr mField){field=mField;};
	CString GetName(){ CString Name=(LPCTSTR)field->GetName(); return Name; };
	short   GetType(){return field->GetType();};
	long    GetActualSize(){return field->GetActualSize();};
	long    GetDefinedSize(){return field->GetDefinedSize();};
	long    GetAttributes(){return field->GetAttributes();};
	CString GetOriginalVal(){_variant_t vt=field->GetOriginalValue(); return (CString) vt.bstrVal;};
	BOOL	SetValue(long lVal);
	BOOL	SetValue(float flVal);
	BOOL	SetValue(int nVal);
	BOOL	SetValue(double dbVal);
	BOOL	SetValue(CString szValue);
	BOOL	SetValue(bool blVal);
	BOOL	SetValue(COleDateTime dtVal);
	BOOL	SetValue(_variant_t vt);
	BOOL	GetValue(int& nValue);
	BOOL	GetValue(long& lVal);
	BOOL	GetValue(double& dbVal);
	BOOL	GetValue(CString& strValue);
	BOOL	GetValue(COleDateTime& dtVal);
	BOOL	GetValue(float& flVal);
	BOOL	GetValue(_variant_t& vtVal);
	CString GetUnderlyingValue() { _variant_t vt=field->UnderlyingValue; return (CString)vt.bstrVal;};

};

//--------------------------------------------------------------------------------------
class CGuiCommand;
class CGuiConnection;
class GUILIBDLLEXPORT CGuiRecordSet
{
public:
	CGuiRecordSet(void);
	~CGuiRecordSet(void);

protected:
	_RecordsetPtr m_rs;
	CGuiConnection* m_pCon;
public:
	BOOL Open(_ConnectionPtr ActiveConnection,LPCTSTR Source= _T(""), ADOCG::CursorTypeEnum CursorType = adOpenUnspecified,ADOCG::LockTypeEnum LockType= adLockUnspecified, long Options = -1);	void MoveFirst();
	void MoveLast();
	void MoveNext();
	void MovePrevious();
	void Cancel();
	void CancelUpdate(); 
	void Close();
	BOOL IsEof();
	BOOL IsBof();
	long GetRecordCount(){ return m_rs->RecordCount;}
	long GetAbsolutePage(){return m_rs->GetAbsolutePage();};
	void SetAbsolutePage(int nPage)	{m_rs->PutAbsolutePage((enum PositionEnum)nPage);};
	long GetPageCount()	{return m_rs->GetPageCount();};
	long GetPageSize()	{return m_rs->GetPageSize();};
	void SetPageSize(int nSize)	{m_rs->PutPageSize(nSize);};
	long GetAbsolutePosition()	{return m_rs->GetAbsolutePosition();};
	void SetAbsolutePosition(int nPosition)	{m_rs->PutAbsolutePosition((enum PositionEnum)nPosition);};
	BOOL Find(LPCTSTR Criteria , long SkipRecords=0 , SearchDirectionEnum SearchDirection= adSearchForward,_variant_t Start=vtMissing);	long GetNumFields()
		{return m_rs->Fields->GetCount();};
	_RecordsetPtr GetAdoRecordSet(){ return m_rs;};
	//void SetBookmark(){m_rs->Bookmark = m_rs->GetBookmark();};

	CString GetCollect(LPCTSTR lpField);
	BOOL GetCollect(int nIndex,int& nValue);
	BOOL GetCollect(int nIndex,long& lVal);
	BOOL GetCollect(int nIndex,double& dbVal);
	BOOL GetCollect(int nIndex,CString& strValue);
	BOOL GetCollect(int nIndex,COleDateTime& dtVal);
	BOOL GetCollect(int nIndex,float& flVal);
	BOOL GetCollect(int nIndex,bool& blVal);
	BOOL GetCollect(int nIndex,_variant_t& vt);
	BOOL GetCollect(int nIndex,COleCurrency& cyVal);
	BOOL GetCollect(LPCTSTR lpField,int& nValue);
	BOOL GetCollect(LPCTSTR lpField,long& lVal);
	BOOL GetCollect(LPCTSTR lpField,double& dbVal);
	BOOL GetCollect(LPCTSTR lpField,CString& strValue);
	BOOL GetCollect(LPCTSTR lpField,COleDateTime& dtVal);
	BOOL GetCollect(LPCTSTR lpField,float& flVal);
	BOOL GetCollect(LPCTSTR lpField,bool& blVal);
	BOOL GetCollect(LPCTSTR lpField,_variant_t& vt);
	BOOL GetCollect(LPCTSTR lpField,COleCurrency& cyVal);
	
	BOOL GetFormatDate(int nIndex,CString& m_szDate, CString Format=_T("%d/%m/%Y")); 
	BOOL GetFormatDate(LPCTSTR lpField,CString& m_szDate, CString Format=_T("%d/%m/%Y"));
	CGuiField GetField(LPCTSTR lpField);
	CGuiField GetField(int Index);
	BOOL SetValue(LPCTSTR lpName,CString szCad);
	BOOL SetValue(LPCTSTR lpName,long lVal);
	BOOL SetValue(LPCTSTR lpName,unsigned char usVal);
	BOOL SetValue(LPCTSTR lpName,short shVal);
	BOOL SetValue(LPCTSTR lpName,float flVal);
	BOOL SetValue(LPCTSTR lpName,double dblVal);
	BOOL SetValue(LPCTSTR lpName,BOOL blVal);
	BOOL SetValue(LPCTSTR lpName,COleDateTime dtVal);
	BOOL SetValue(LPCTSTR lpName,unsigned long ulVal);
	BOOL SetValue(LPCTSTR lpName, COleCurrency cuVal);
	
    BOOL SetFieldValue(LPCTSTR lpName, _variant_t vt);
	BOOL Supports( CursorOptionEnum CursorOptions ) ;	BOOL FindFirst(LPCTSTR Criteria);
	BOOL FindNext();
	void CGuiRecordSet::Move(long NumRecords , _variant_t Start);
	void Attach(_RecordsetPtr m_prs );
	void CancelBatch(AffectEnum AffectRecords= adAffectAll);	void SetCacheSize(long lSizeCache){m_rs->put_CacheSize(lSizeCache);};	void GetCacheSize() {m_rs->GetCacheSize();};	CGuiRecordSet*  Clone(ADOCG::LockTypeEnum LockType= adLockUnspecified);	CGuiRecordSet* NextRecordset(long RecordsAffected) ;	BOOL AddNew(){ return m_rs->AddNew() != S_OK;};
	BOOL Update(){ return m_rs->Update() != S_OK;};
	BOOL Delete();
	BOOL IsOpen();
	BOOL SetFilter(LPCTSTR lpFilter);
	BOOL SetSort(LPCTSTR lpSort);
	ADOCG::EditModeEnum GetEditMode(){return m_rs->EditMode;}; 
protected:
	_variant_t vtPointer;
	LPCTSTR m_Criteria;
};


//------------------------------------------------------------------------------------------------
class GUILIBDLLEXPORT CGuiConnection
{
public:
	CGuiConnection(void);
	~CGuiConnection(void);

protected:
	_ConnectionPtr m_pConn;
public:
	BOOL Open(LPCTSTR ConnectionString,LPCTSTR UID=_T(""),LPCTSTR PWD=_T(""),long Options=-1);
	CGuiRecordSet* Execute(LPCTSTR CommandText,long Options=-1 );
	long BeginTrans();
	void RollbackTrans();
	void CommitTrans();
	void Cancel();
	void Close();
	BOOL IsConnect();
	void SetConnectionTimeout(long ConnectionTimeout);
	void SetConectionString( LPCTSTR ConnectionString);
	long GetConnectionTimeout();
	_ConnectionPtr GetConecction(){return m_pConn;};
	LPCTSTR GetConectionString();
	
};

//----------------------------------------------------------------------------------------------

class GUILIBDLLEXPORT CGuiParameter
{
public:
	CGuiParameter();
	~CGuiParameter();
protected:
	_ParameterPtr pParam;
public:
	void SetAttributes(long Attributes);
	void SetDirection(ADOCG::ParameterDirectionEnum Direction=adParamUnknown);
	void SetName(LPCTSTR szName);
	void SetNumericScale(unsigned char NumericScale);
	void SetPrecision(unsigned char Precision);
	void SetSize(long Size);
	void SetType(ADOCG::DataTypeEnum Type);
	BOOL SetValue(long lVal);
	BOOL SetValue(float flVal);
	BOOL SetValue(int nVal);
	BOOL SetValue(double dbVal);
	BOOL SetValue(CString szValue);
	BOOL SetValue(bool blVal);
	BOOL SetValue(COleDateTime dtVal);
	BOOL SetValue(COleCurrency cyVal);
	BOOL SetValue(_variant_t vt);
	BOOL GetValue(int& nValue);
	BOOL GetValue(long& lVal);
	BOOL GetValue(double& dbVal);
	BOOL GetValue(CString& strValue);
	BOOL GetValue(COleDateTime& dtVal);
	BOOL GetValue(float& flVal);
	BOOL GetValue(_variant_t& vtVal);
	BOOL GetValue(COleCurrency& cyVal);
	BOOL GetFormatDate(CString& m_szDate, CString Format=_T("%d/%m/%Y"));
	_ParameterPtr GetParameter(){return pParam;};
	void Attach(_ParameterPtr param) {pParam=param;};

};

//----------------------------------------------------------------------------------------------

class GUILIBDLLEXPORT CGuiCommand
{
public:
	CGuiCommand();
	~CGuiCommand();
protected:
	_CommandPtr	pCommand;
	CGuiConnection m_pCon;
public:
	void SetActiveConnection(CGuiConnection* pCon);
	void SetActiveConnection(LPCTSTR szconnec);
	void Cancel();
	void SetCommandText(LPCTSTR lpCommand,CommandTypeEnum cmdType=adCmdText);
	void SetCommandTimeout(long CommandTimeout);
	void SetPrepared(BOOL prepared);
	long GetState();
	
	CGuiRecordSet* Execute(VARIANT* param1=NULL,VARIANT* param2=NULL,long Options=-1);
	CGuiParameter* CreateParameter(CString Name ,long Size ,ADOCG::DataTypeEnum Type= adEmpty, 
					ADOCG::ParameterDirectionEnum Direction= adParamInput) ;
	BOOL Append(CGuiParameter* pParam);
	_CommandPtr GetCommand(){return pCommand;};
	void Attach(_CommandPtr	Command) {pCommand=Command;};
	
};

⌨️ 快捷键说明

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