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

📄 sqlservertblwrappers.cpp

📁 C++编写的代码
💻 CPP
字号:
#include <iostream>
#include <fstream>
#include "SQLServerTblWrappers.h"

using namespace std;

const char* DBServerHostCfg = "Host:";
const char* DBNameCfg = "DataBase:";
const char* UserIDCfg = "UID:";
const char* PwdCfg = "Pwd:";

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

bool SQLServerTblWrappers::getConnectStr(const char* cfgFile, std::string& connectionStr)
{
	ifstream infile;
	infile.open(cfgFile);
	if (!infile.good())
	{
		cout<<"********Open DB Config File Failed...."<<endl;		
		return false;
	}
	
	string cfgData;
	connectionStr = "driver={SQL Server};Server=";
	infile>>cfgData;
	if (cfgData != DBServerHostCfg)
	{
		cout<<"Config File Line 1 Error!!"<<endl;
		infile.close();
		return false;
	}
	infile>>cfgData;
	connectionStr += cfgData;
	connectionStr += ";DATABASE=";
	
	infile>>cfgData;
	if (cfgData != DBNameCfg)
	{
		cout<<"Config File Line 2 Error!!"<<endl;
		infile.close();
		return false;
	}
	infile>>cfgData;
	connectionStr += cfgData;
	connectionStr += ";UID=";
	
	infile>>cfgData;
	if(cfgData != UserIDCfg)
	{
		cout<<"Config File Line 3 Error!!"<<endl;
		infile.close();
		return false;
	}
	infile>>cfgData;
	connectionStr += cfgData;
	connectionStr += ";PWD=";
	
	infile>>cfgData;
	if (cfgData != PwdCfg)
	{
		cout<<"Config File Line 4 Error!!"<<endl;
		infile.close();
		return false;
	}
	infile>>cfgData;
	connectionStr += cfgData;
	
	return true;
}

//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////

bool SQLServerTblWrappers::ConnectDB(const char* cfgFile)
{
	string connStr;
	if (!getConnectStr(cfgFile, connStr))
	{
		cout<<"*******get Connection String Failed...."<<endl;
		return false;
	}

	if(CoInitialize(NULL) < 0 )
		return false;

	HRESULT hr;
	try
	{
		hr = pConn_.CreateInstance("ADODB.Connection");
		pConn_->ConnectionTimeout = 5; //设置超时时间为5秒		
		if (SUCCEEDED(hr))
			pConn_->Open(connStr.c_str(),"","",adModeUnknown);
		else
			return false;
	}
	catch(...)
	{
		cout<<"Connect DB failed!!"<<endl;
		return false;
	}
	cout<<"Connect DB OK!!"<<endl;
	return true;
}

//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////

bool SQLServerTblWrappers::ExecuteSQL(const char* SQLStr)
{
	try
	{
		//pRS_->Close();
		pRS_ = pConn_->Execute(SQLStr, &RecordsAffected_, adCmdText);
	}
	catch(...)
	{
		cout<<"Execute SQL String Failed...."<<endl;
		return false;
	}
	return true;
}

//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
bool SQLServerTblWrappers::DisconnectDB()
{
	try
	{		
		HRESULT hr1, hr2;
		hr1 = pRS_->Close();
		hr2 = pConn_->Close();
		if (!SUCCEEDED(hr1) || !SUCCEEDED(hr2))
			return false;
	}
	catch(...)
	{
		return false;
	}
	return true;
}

⌨️ 快捷键说明

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