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

📄 voconnection.cpp

📁 evc环境下的数据库查看器。可以查看表格和表格内的数据。
💻 CPP
字号:
// VOConnection.cpp: implementation of the CVOConnection class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "VOConnection.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

#include <COMDEF.H>
#include <ADOCE31.H>
#include "VOConnection.h"
#include "VORecordset.h"


//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

const IID IID__Connection = { 0x113033de, 0xf682, 0x11d2,	{ 0xbb, 0x62, 0x00, 0xc0, 0x4f, 0x68, 0x0a, 0xcc}};

void __stdcall _com_issue_error(HRESULT m_hr)
{
	TCHAR pcszError[1024];

	_stprintf(pcszError, TEXT("_com_issue_error(%ld)\n"), m_hr);
	OutputDebugString(pcszError);
}

BOOL	CVOConnection::g_Init = FALSE;
CLSID	CVOConnection::g_ClsID;
TCHAR*	CVOConnection::g_ProgID = TEXT("ADOCE.Connection.3.1");

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CVOConnection::CVOConnection(LPCTSTR pcszProvider) : m_Conn(NULL)
{
//	AfxMessageBox(_T("init"));
	
	if(!g_Init)
		Initialize();

	HRESULT hr;

	if(pcszProvider == NULL)
	{
		pcszProvider = TEXT("cedb");

		hr = CoCreateInstance(g_ClsID, NULL, CLSCTX_INPROC_SERVER, IID__Connection, (LPVOID*) &m_Conn);

		if(FAILED(hr))
		{
//			AfxMessageBox(_T("connectin created err"));
			return;
		}

		hr = m_Conn->put_Provider((LPTSTR)pcszProvider);
		hr = m_Conn->Open(TEXT(""),TEXT(""),TEXT(""),adOpenUnspecified);
	}
	else
	{
		m_strProvider = pcszProvider;
		m_Conn = NULL;
	}
}

CVOConnection::~CVOConnection()
{
//	AfxMessageBox(_T("delete conntection"));
	if(m_Conn)
	{
		m_Conn->Close();
		m_Conn->Release();
	}
//	AfxMessageBox(_T("delete conntection end"));
}

BOOL CVOConnection::Initialize()
{
	if(FAILED(CoInitializeEx(NULL, COINIT_MULTITHREADED)))
		return FALSE;
	
	HRESULT hr;

	hr = CLSIDFromProgID(g_ProgID, &g_ClsID);

	if(FAILED(hr))
		return FALSE;

	g_Init = TRUE;

	return TRUE;
}

BOOL CVOConnection::Execute(LPCTSTR pcszSQL)
{
	CVORecordSet rs(*this);

	return rs.Open(pcszSQL, adOpenForwardOnly, adLockPessimistic);
}

void CVOConnection::ClearConnect()
{
	if( m_Conn )
	{
		m_Conn->Close();
		m_Conn->put_Provider((LPTSTR)(TEXT("cedb")));
		m_Conn->Open(TEXT(""),TEXT(""),TEXT(""),adOpenUnspecified);	
		m_strProvider = TEXT("");
	}
}

void CVOConnection::SetConnectDB(LPCTSTR lpszDBName)
{
	if( m_Conn )
	{
		m_Conn->Close();
		m_Conn->put_Provider((LPTSTR)(TEXT("cedb")));
		m_Conn->Open((LPTSTR)lpszDBName,TEXT(""),TEXT(""),adOpenUnspecified);	
		m_strProvider = lpszDBName;
	}
}

bool CVOConnection::DBExist(LPCTSTR dbName)
{
	CString tmp;
	tmp.Format(_T("CREATE DATABASE '%s'"), dbName);
	return (!Execute(tmp));
}

⌨️ 快捷键说明

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