データベースフィールドのDLL記述を読み込む
1.stdafx.hファイル導入
2.データベース管理クラス
ヘッダファイル
リソースファイル
#import "C:\\Program Files\\Common Files\\System\\ado\\msado15.dll" \
rename_namespace ("ADODB") \
rename("EOF","ADOEOF")
using namespace ADODB;
2.データベース管理クラス
ヘッダファイル
#pragma once
//
class CDataManage
{
public:
_ConnectionPtr m_pConnect;
_CommandPtr m_pCommand;
_RecordsetPtr m_pRecord;
static CString m_ConnectStr;
public:
CDataManage(void);
~CDataManage(void);
public:
//
bool InitDataBase();
};
リソースファイル
#include "StdAfx.h"
#include "DataManage.h"
//Access
//CString CDataManage::m_ConnectStr = _T("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=SvrInfo.mdb;Persist Security Info=False");
//Oracle
CString CDataManage::m_ConnectStr = _T("Provider=MSDAORA.1;Password=×××;User ID=×××;Data Source=wind");
CDataManage::CDataManage(void)
{
}
CDataManage::~CDataManage(void)
{
}
bool CDataManage::InitDataBase()
{
try
{
m_pConnect.CreateInstance(_T("ADODB.Connection"));
m_pCommand.CreateInstance(_T("ADODB.Command"));
m_pRecord.CreateInstance(_T("ADODB.Recordset"));
m_pConnect->ConnectionString = m_ConnectStr.AllocSysString();
m_pConnect->Open("","","",-1);
}
catch(_com_error &err)
{
CString ch = err.ErrorMessage();
//MessageBox(NULL,_T(" "),_T(" "),MB_ICONINFORMATION);
MessageBoxW(NULL,ch,_T(" "),MB_ICONINFORMATION);
return false;
}
return true;
}
3.DBOOperationヘッダファイル、リソースファイルの
ヘッダファイル
#pragma once
#ifdef DLL_API
#else
#define DLL_API extern "C" _declspec(dllimport)
#endif
DLL_API CString GetPassword();
リソースファイル#include "stdafx.h"
#include "DataManage.h"
#include "DBOperation.h"
#define DLL_API extern "C" _declspec(dllexport)
#define SQL_GETPWD _T("select password from windtable where accountNumber='123456'")
CString GetPassword()
{
CDataManage dataManage;
CString password("");
dataManage.InitDataBase();
try
{
_RecordsetPtr pRecord = dataManage.m_pConnect->Execute(SQL_GETPWD,0,adCmdText);
if(pRecord != NULL)
{
VARIANT val = pRecord->GetFields()->GetItem(_T("password"))->Value;
if(val.vt != VT_NULL)
{
password = val.bstrVal;
}
}
}
catch (...)
{
MessageBox(NULL,_T(" !"),_T(" "),MB_OK);
}
return password;
}