「カテゴリ:MFC」の版間の差分

提供:MochiuWiki : SUSE, EC, PCB
ナビゲーションに移動 検索に移動
編集の要約なし
(ページの白紙化)
タグ: 白紙化
 
1行目: 1行目:
== 概要 ==
ODBC(Open Database Connectivity)は、Microsoft社が提唱したDBMS接続用のAPI仕様である。<br>
DBMSの差異はODBCドライバによって吸収される為、ODBCの手順に従ってプログラムを作成すれば、基本的な差異を意識せずプログラムすることができる。<br>
MFC ODBCクラスは、Visual C++のODBCクラスライブラリである。<br><br>


<center>
{| class="wikitable"
|-
! 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
|}
</center>
<br><br>
== サンプルコード ==
* <big>'''SQL Serverを使用'''</big>
<source lang="cpp">
#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;
}
</source>
<br>
* <big>'''Oracle Databaseを使用'''</big>
<source lang="cpp">
#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;
}
</source>
<br>
* <big>'''MySQLを使用'''</big>
<source lang="cpp">
#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;
}
</source>
<br>
* <big>'''Jet Databaseを使用'''</big>
<source lang="cpp">
#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;
}
</source>
<br>
* <big>'''Ace Databaseを使用'''</big>
<source lang="cpp">
#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;
}
</source>
<br><br>
__FORCETOC__
[[カテゴリ:MFC]]

2019年7月8日 (月) 18:33時点における最新版