Hello, ODBC(MFC) World!
Posted on 3月 25th, 2012 by cx20
ODBC(MFC)
ODBC(Open Database Connectivity)は、マイクロソフト社が提唱した DBMS 接続用の API 仕様である。
DBMS の差異は ODBC ドライバによって吸収される為、ODBC の手順にしたがってプログラムを作成すれば、基本的な差異を意識せず、プログラムすることができる。
ODBCドライバ |
ファイル |
Microsoft Access Driver (*.mdb) |
ODBCJT32.DLL |
Microsoft Text Driver (*.txt; *.csv) |
ODBCJT32.DLL |
Microsoft Excel Driver (*.xls) |
ODBCJT32.DLL |
Microsoft dBase Driver (*.dbf) |
ODBCJT32.DLL |
Microsoft ODBC for Oracle |
MSORCL32.DLL |
Microsoft Paradox Driver (*.db ) |
ODBCJT32.DLL |
SQL Server |
SQLSRV32.DLL |
Microsoft Access Driver (*.mdb, *.accdb) |
ACEODBC.DLL |
SQL Server Native Client 10.0 |
SQLNCLI10.DLL |
MFC ODBC クラス は、Visual C++ の ODBC クラスライブラリである。
ソースコード(VC + MFC + ODBC + Jet データベース)
#include <afx.h>
#include <afxdb.h>
int _tmain( int argc, TCHAR* argv[] )
{
CDatabase db;
CString strCon = _T("Driver={Microsoft Access Driver (*.mdb)};DBQ=hello.mdb");
CString strSQL = _T("SELECT 'Hello, ODBC(MFC) World!' AS Message");
db.OpenEx( strCon );
CRecordset rs( &db );
rs.Open( CRecordset::forwardOnly, strSQL );
CString strMessage;
while( !rs.IsEOF() )
{
rs.GetFieldValue( (short)0, strMessage );
_tprintf( _T("%sn"), (LPCTSTR)strMessage );
rs.MoveNext();
}
rs.Close();
db.Close();
return 0;
} |
#include <afx.h>
#include <afxdb.h>
int _tmain( int argc, TCHAR* argv[] )
{
CDatabase db;
CString strCon = _T("Driver={Microsoft Access Driver (*.mdb)};DBQ=hello.mdb");
CString strSQL = _T("SELECT 'Hello, ODBC(MFC) World!' AS Message");
db.OpenEx( strCon );
CRecordset rs( &db );
rs.Open( CRecordset::forwardOnly, strSQL );
CString strMessage;
while( !rs.IsEOF() )
{
rs.GetFieldValue( (short)0, strMessage );
_tprintf( _T("%sn"), (LPCTSTR)strMessage );
rs.MoveNext();
}
rs.Close();
db.Close();
return 0;
}
ソースコード(VC + MFC + ODBC + ACE データベース)
#include <afx.h>
#include <afxdb.h>
int _tmain( int argc, TCHAR* argv[] )
{
CDatabase db;
CString strCon = _T("Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=.\hello.accdb");
CString strSQL = _T("SELECT 'Hello, ODBC World!' AS Message");
db.OpenEx( strCon );
CRecordset rs( &db );
rs.Open( CRecordset::forwardOnly, strSQL );
CString strMessage;
while( !rs.IsEOF() )
{
rs.GetFieldValue( (short)0, strMessage );
_tprintf( _T("%sn"), (LPCTSTR)strMessage );
rs.MoveNext();
}
rs.Close();
db.Close();
return 0;
} |
#include <afx.h>
#include <afxdb.h>
int _tmain( int argc, TCHAR* argv[] )
{
CDatabase db;
CString strCon = _T("Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=.\hello.accdb");
CString strSQL = _T("SELECT 'Hello, ODBC World!' AS Message");
db.OpenEx( strCon );
CRecordset rs( &db );
rs.Open( CRecordset::forwardOnly, strSQL );
CString strMessage;
while( !rs.IsEOF() )
{
rs.GetFieldValue( (short)0, strMessage );
_tprintf( _T("%sn"), (LPCTSTR)strMessage );
rs.MoveNext();
}
rs.Close();
db.Close();
return 0;
}
ソースコード(VC + MFC + ODBC + SQL Server)
#include <afx.h>
#include <afxdb.h>
int _tmain( int argc, TCHAR* argv[] )
{
CDatabase db;
CString strCon = _T("Driver={SQL Server};SERVER=(local);DATABASE=master;UID=sa;PWD=P@ssW0rd");
CString strSQL = _T("SELECT 'Hello, ODBC(MFC) World!' AS Message");
db.OpenEx( strCon );
CRecordset rs( &db );
rs.Open( CRecordset::forwardOnly, strSQL );
CString strMessage;
while( !rs.IsEOF() )
{
rs.GetFieldValue( (short)0, strMessage );
_tprintf( _T("%sn"), (LPCTSTR)strMessage );
rs.MoveNext();
}
rs.Close();
db.Close();
return 0;
} |
#include <afx.h>
#include <afxdb.h>
int _tmain( int argc, TCHAR* argv[] )
{
CDatabase db;
CString strCon = _T("Driver={SQL Server};SERVER=(local);DATABASE=master;UID=sa;PWD=P@ssW0rd");
CString strSQL = _T("SELECT 'Hello, ODBC(MFC) World!' AS Message");
db.OpenEx( strCon );
CRecordset rs( &db );
rs.Open( CRecordset::forwardOnly, strSQL );
CString strMessage;
while( !rs.IsEOF() )
{
rs.GetFieldValue( (short)0, strMessage );
_tprintf( _T("%sn"), (LPCTSTR)strMessage );
rs.MoveNext();
}
rs.Close();
db.Close();
return 0;
}
ソースコード(VC + MFC + ODBC + Oracle)
#include <afx.h>
#include <afxdb.h>
int _tmain( int argc, TCHAR* argv[] )
{
CDatabase db;
CString strCon = _T("Driver={Microsoft ODBC for Oracle};SERVER=ORCL;UID=scott;PWD=tiger");
CString strSQL = _T("SELECT 'Hello, ODBC(MFC) World!' AS Message FROM DUAL");
db.OpenEx( strCon );
CRecordset rs( &db );
rs.Open( CRecordset::forwardOnly, strSQL );
CString strMessage;
while( !rs.IsEOF() )
{
rs.GetFieldValue( (short)0, strMessage );
_tprintf( _T("%sn"), (LPCTSTR)strMessage );
rs.MoveNext();
}
rs.Close();
db.Close();
return 0;
} |
#include <afx.h>
#include <afxdb.h>
int _tmain( int argc, TCHAR* argv[] )
{
CDatabase db;
CString strCon = _T("Driver={Microsoft ODBC for Oracle};SERVER=ORCL;UID=scott;PWD=tiger");
CString strSQL = _T("SELECT 'Hello, ODBC(MFC) World!' AS Message FROM DUAL");
db.OpenEx( strCon );
CRecordset rs( &db );
rs.Open( CRecordset::forwardOnly, strSQL );
CString strMessage;
while( !rs.IsEOF() )
{
rs.GetFieldValue( (short)0, strMessage );
_tprintf( _T("%sn"), (LPCTSTR)strMessage );
rs.MoveNext();
}
rs.Close();
db.Close();
return 0;
}
ソースコード(VC + MFC + ODBC + MySQL)
#include <afx.h>
#include <afxdb.h>
int _tmain( int argc, TCHAR* argv[] )
{
CDatabase db;
CString strCon = _T("Driver={MySQL ODBC 5.1 Driver};Server=localhost;UID=root;PWD=P@ssW0rd");
CString strSQL = _T("SELECT 'Hello, ODBC(MFC) World!' AS Message");
db.OpenEx( strCon );
CRecordset rs( &db );
rs.Open( CRecordset::forwardOnly, strSQL );
CString strMessage;
while( !rs.IsEOF() )
{
rs.GetFieldValue( (short)0, strMessage );
_tprintf( _T("%sn"), (LPCTSTR)strMessage );
rs.MoveNext();
}
rs.Close();
db.Close();
return 0;
} |
#include <afx.h>
#include <afxdb.h>
int _tmain( int argc, TCHAR* argv[] )
{
CDatabase db;
CString strCon = _T("Driver={MySQL ODBC 5.1 Driver};Server=localhost;UID=root;PWD=P@ssW0rd");
CString strSQL = _T("SELECT 'Hello, ODBC(MFC) World!' AS Message");
db.OpenEx( strCon );
CRecordset rs( &db );
rs.Open( CRecordset::forwardOnly, strSQL );
CString strMessage;
while( !rs.IsEOF() )
{
rs.GetFieldValue( (short)0, strMessage );
_tprintf( _T("%sn"), (LPCTSTR)strMessage );
rs.MoveNext();
}
rs.Close();
db.Close();
return 0;
}
コンパイル&リンク方法(Visual C++)
実行結果
Message
Hello, ODBC(MFC) World! |
Message
Hello, ODBC(MFC) World!
Categories: library, MFC, ODBC, SQL