「MFCとデータベース - データベースの接続」の版間の差分
ナビゲーションに移動
検索に移動
細 (Wiki がページ「ODBCでデータベースに接続する」を「ODBCでデータベースに接続する(MFC)」に、リダイレクトを残さずに移動しました) |
細 (文字列「</source>」を「</syntaxhighlight>」に置換) |
||
(同じ利用者による、間の2版が非表示) | |||
32行目: | 32行目: | ||
== サンプルコード == | == サンプルコード == | ||
* <big>'''SQL Serverを使用'''</big> | * <big>'''SQL Serverを使用'''</big> | ||
< | <syntaxhighlight lang="cpp"> | ||
#include <afx.h> | #include <afx.h> | ||
#include <afxdb.h> | #include <afxdb.h> | ||
60行目: | 60行目: | ||
return 0; | return 0; | ||
} | } | ||
</ | </syntaxhighlight> | ||
<br> | <br> | ||
* <big>'''Oracle Databaseを使用'''</big> | * <big>'''Oracle Databaseを使用'''</big> | ||
< | <syntaxhighlight lang="cpp"> | ||
#include <afx.h> | #include <afx.h> | ||
#include <afxdb.h> | #include <afxdb.h> | ||
91行目: | 91行目: | ||
return 0; | return 0; | ||
} | } | ||
</ | </syntaxhighlight> | ||
<br> | <br> | ||
* <big>'''MySQLを使用'''</big> | * <big>'''MySQLを使用'''</big> | ||
< | <syntaxhighlight lang="cpp"> | ||
#include <afx.h> | #include <afx.h> | ||
#include <afxdb.h> | #include <afxdb.h> | ||
122行目: | 122行目: | ||
return 0; | return 0; | ||
} | } | ||
</ | </syntaxhighlight> | ||
<br> | <br> | ||
* <big>'''Jet Databaseを使用'''</big> | * <big>'''Jet Databaseを使用'''</big> | ||
< | <syntaxhighlight lang="cpp"> | ||
#include <afx.h> | #include <afx.h> | ||
#include <afxdb.h> | #include <afxdb.h> | ||
153行目: | 153行目: | ||
return 0; | return 0; | ||
} | } | ||
</ | </syntaxhighlight> | ||
<br> | <br> | ||
* <big>'''Ace Databaseを使用'''</big> | * <big>'''Ace Databaseを使用'''</big> | ||
< | <syntaxhighlight lang="cpp"> | ||
#include <afx.h> | #include <afx.h> | ||
#include <afxdb.h> | #include <afxdb.h> | ||
184行目: | 184行目: | ||
return 0; | return 0; | ||
} | } | ||
</ | </syntaxhighlight> | ||
<br><br> | <br><br> | ||
__FORCETOC__ | __FORCETOC__ | ||
[[カテゴリ:MFC]] | [[カテゴリ:MFC]] |
2021年11月20日 (土) 09:29時点における最新版
概要
ODBC(Open Database Connectivity)は、Microsoft社が提唱したDBMS接続用のAPI仕様である。
DBMSの差異はODBCドライバによって吸収される為、ODBCの手順に従ってプログラムを作成すれば、基本的な差異を意識せずプログラムすることができる。
MFC ODBCクラスは、Visual C++の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 |
サンプルコード
- 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;
}
- Oracle Databaseを使用
#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;
}
- 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;
}
- Jet Databaseを使用
#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;
}
- Ace Databaseを使用
#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;
}