📄 databasex.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 + -