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

📄 databasex.cpp

📁 读取oracle的blob数据. 数据库连接以ODBC连接.
💻 CPP
字号:
// DatabaseX.cpp: implementation of the CDatabaseX class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "DatabaseX.h"
extern BYTE rootdir[256];
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

#define _USE_DIALOG

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

CDatabaseX::CDatabaseX()
{

}

CDatabaseX::~CDatabaseX()
{

}

 
 
BOOL CDatabaseX::OpenDatabase(char *dsn, char *puid, char *psw)
{
	if (dsn==NULL) return  false;
	int  ret;
	char uid[128];
	char pwd[128];
	char connect[512];
	
	uid[0]=0;	if (puid) strcpy(uid, puid);
	pwd[0]=0;	if (psw)  strcpy(pwd, psw);

	connect[0]=0;

	if (dsn[0] || uid[0] || pwd[0])
	{
		//"ODBC;DSN=SQL7;Description=SQL7 system DSN;SERVER=piinote;UID=sa;PWD=;WSID=PIINOTE;DATABASE=Sedb"}
#ifdef _USE_DIALOG
		strcpy(connect,"ODBC;");
#else
		connect[0]=0;
#endif
		if (dsn[0])
		{
			strcat(connect,"DSN=");
			strcat(connect,dsn); strcat(connect,";");
		}

		if (uid[0])
		{
			strcat(connect,"UID=");
			strcat(connect,uid); strcat(connect,";");
		}

		strcat(connect,"PWD=");
		strcat(connect,pwd); strcat(connect,";");
		
	}

	//选择新的数据源,建立连接:
	if (IsOpen())
	{
		Close();
	}

	if (IsOpen())
	{
		AfxMessageBox("Reopen error!");
		return FALSE;
	}

	CString msg;

	TRY
	{
#ifdef _USE_DIALOG
		if (connect[0])
			ret = Open(FALSE,FALSE,FALSE,connect);
		else
			ret = Open(FALSE,FALSE,FALSE);
#else
		OpenEx(connect,	CDatabase::noOdbcDialog);   
#endif
	}

	CATCH_ALL(e)
	{
		char msgs[256];
		e->GetErrorMessage(msgs, 256);
		msg = msgs;
	}
	END_CATCH_ALL
	
	if( !ret)
	{
		AfxMessageBox("No new data source be selected!");
		return FALSE;
	}

	return TRUE;

}


BOOL CDatabaseX::OpenDatabaseNoDlg(char *dsn, char *puid, char *psw)
{
	if (dsn==NULL) return false;

	int  ret;
	char uid[128];
	char pwd[128];
	char connect[512];
	
	uid[0]=0;	if (puid) strcpy(uid, puid);
	pwd[0]=0;	if (psw)  strcpy(pwd, psw);

	connect[0]=0;

 	//"ODBC;DSN=SQL7;Description=SQL7 system DSN;SERVER=piinote;UID=sa;PWD=;WSID=PIINOTE;DATABASE=Sedb"}


	if (dsn[0])
	{
		strcat(connect,"DSN=");
		strcat(connect,dsn); strcat(connect,";");
	}

	if (uid[0])
	{
		strcat(connect,"UID=");
		strcat(connect,uid); strcat(connect,";");
	}

	strcat(connect,"PWD=");
	strcat(connect,pwd); strcat(connect,";");
		
 
	//选择新的数据源,建立连接:
	if (IsOpen())
	{
		Close();
	}

	if (IsOpen())
	{
		AfxMessageBox("Error when close opened database!");
		return FALSE;
	}

	ret = 0;

	TRY
	{
		ret = OpenEx(connect,	CDatabase::noOdbcDialog | CDatabase::useCursorLib);   
	}

	CATCH_ALL(e)
	{
	}
	END_CATCH_ALL
	
	if(  ret<=0)
	{
 		return FALSE;
	}

	return TRUE;

}

void CDatabaseX::ExecuteSQLEx(LPCSTR lpszSQL)
{
	int err=0;

	try
	{
		ExecuteSQL(lpszSQL);
	}

	catch(CDBException *e)
	{
		err = 1;
		CString sqlerr;
		sqlerr = lpszSQL;
		sqlerr += " \n\n";
		sqlerr += e->m_strError;
		AfxMessageBox((char*)(const char*)sqlerr);
 		e->Delete();	
	}

}

⌨️ 快捷键说明

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