Archive for 3月 26th, 2012
-
Hello, DAO(MFC) World!
Posted on 3月 26th, 2012 by cx20
DAO(MFC)
MFC(Microsoft Foundation Class)は、Visual C++ 用のクラスライブラリである。
MFC DAO クラスは、DAO(Data Access Object)のラップクラスとして実装されている。
現在、DAO クラスは既存のアプリケーションの保守の為だけに残されており、新しいプロジェクトでは ODBC クラスが推奨されている。
なお、x64 プラットフォームでは DAO クラスはサポートされておらず、コンパイルエラーとなる。
ソースコード(VC + MFC + DAO + Jet データベース)
#include <afx.h> #include <afxdao.h> int _tmain( int argc, TCHAR* argv[] ) { CDaoDatabase db; db.Open( _T("hello.mdb") ); CDaoRecordset rs( &db ); CString strSQL = _T("SELECT 'Hello, DAO(MFC) World!' AS Message"); rs.Open(dbOpenDynaset, strSQL, dbReadOnly); while ( !rs.IsEOF() ) { COleVariant varValue = rs.GetFieldValue( 0 ); _tprintf( _T("%sn"), V_BSTRT( &varValue ) ); rs.MoveNext(); } rs.Close(); db.Close(); return 0; }
ソースコード(VC + MFC + DAO + ODBC + SQL Server)
#include <afx.h> #include <afxdao.h> int _tmain( int argc, TCHAR* argv[] ) { CDaoDatabase db; db.Open( _T(""), FALSE, FALSE, _T("Driver={SQL Server};SERVER=(local);DATABASE=master;UID=sa;PWD=P@ssW0rd") ); CDaoRecordset rs( &db ); CString strSQL = _T("SELECT 'Hello, DAO(MFC) World!' AS Message"); rs.Open(dbOpenDynaset, strSQL, dbReadOnly); while ( !rs.IsEOF() ) { COleVariant varValue = rs.GetFieldValue( 0 ); _tprintf( _T("%sn"), V_BSTRT( &varValue ) ); rs.MoveNext(); } rs.Close(); db.Close(); return 0; }
ソースコード(VC + MFC + DAO + ODBC + Oracle)
#include <afx.h> #include <afxdao.h> int _tmain( int argc, TCHAR* argv[] ) { CDaoDatabase db; db.Open( _T(""), FALSE, FALSE, _T("ODBC;Driver={Oracle in OraDb11g_home1};DBQ=ORCL;UID=scott;PWD=tiger;") ); CDaoRecordset rs( &db ); CString strSQL = _T("SELECT 'Hello, DAO(MFC) World!' AS Message"); rs.Open(dbOpenDynaset, strSQL, dbReadOnly); while ( !rs.IsEOF() ) { COleVariant varValue = rs.GetFieldValue( 0 ); _tprintf( _T("%sn"), V_BSTRT( &varValue ) ); rs.MoveNext(); } rs.Close(); db.Close(); return 0; }
コンパイル&リンク方法(Visual C++)
C:¥> cl hello.cpp
実行結果
Hello, DAO(MFC) World!