Archive for 3月 25th, 2012
-
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; }
ソースコード(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; }
ソースコード(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; }
ソースコード(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; }
ソースコード(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; }
コンパイル&リンク方法(Visual C++)
C:¥> cl hello.cpp
実行結果
Message Hello, ODBC(MFC) World!