「MFCとデータベース - CRUDの実行」の版間の差分

📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)

文字列「</source>」を「</syntaxhighlight>」に置換
編集の要約なし
1行目: 1行目:
== 概要 ==
== 概要 ==
ここでは、MFCとミドルウェアであるODBCを使用したデータベースの更新処理を記載する。<br>
ここでは、MFCとミドルウェアであるODBCを使用したデータベース処理を記載する。<br>
<br>
上記を使用したデータベースの更新手順は、以下の2つの項目からなる。<br>
上記を使用したデータベースの更新手順は、以下の2つの項目からなる。<br>
# '''ODBCアドミニストレータでのデータソース登録'''
# ODBCアドミニストレータでのデータソース登録
# '''データベースの操作'''
# データベースの操作
<br><br>
<br><br>


== サンプルコード ==
== SELECT ==
<big>'''SELECT文を発行する'''</big>
  <syntaxhighlight lang="c++">
  <syntaxhighlight lang="cpp">
  #include <afxdb.h>
  #include <afxdb.h>
 
 
26行目: 26行目:
    
    
     // 実行
     // 実行
     CRecordset rs( &db );
     CRecordset rs(&db);
     try
     try
     {
     {
       rs.Open( CRecordset::forwardOnly, _T("select * from test") );//SQLコマンドの実行
      // SQLコマンドの実行
       rs.Open( CRecordset::forwardOnly, _T("select * from test") );
   
   
       CODBCFieldInfo fi;
       CODBCFieldInfo fi;
52行目: 53行目:
             CString strValue;
             CString strValue;
             rs.GetFieldValue(index, _T(strValue));
             rs.GetFieldValue(index, _T(strValue));
             TRACE("%s\n",strValue);
             TRACE("%s\n", strValue);
           }
           }
           rs.MoveNext();
           rs.MoveNext();
58行目: 59行目:
     }
     }
     catch(...)
     catch(...)
     { // SQLがエラーを発生した場合はここで捕捉
     { // SQLがエラーを発生した場合はここで捕捉
      // メモリリークのように見えるがODBCドライバが自動的に解放する
      // メモリリークのように見えるがODBCドライバが自動的に解放する
     }
     }
    
    
67行目: 68行目:
  </syntaxhighlight>
  </syntaxhighlight>
<br><br>
<br><br>
<big>'''UPDATE / INSERT / DELETE文を発行する'''</big>
 
  <syntaxhighlight lang="cpp">
== UPDATE / INSERT / DELETE ==
  <syntaxhighlight lang="c++">
  void CSampleDlg::OnBnClickedQueryButton2()
  void CSampleDlg::OnBnClickedQueryButton2()
  {
  {
86行目: 88行目:
     try
     try
     {
     {
       db.ExecuteSQL("create table test(a text,b text)");                   // 各種SQLコマンドの実行 複数実行可能
       db.ExecuteSQL("create table test(a text, b text)");                 // 各種SQLコマンドの実行 複数実行可能
       // db.ExecuteSQL("insert into test(a,b) values('inaba','minoru')");  // 各種SQLコマンドの実行 複数実行可能
       // db.ExecuteSQL("insert into test(a,b) values('inaba','minoru')");  // 各種SQLコマンドの実行 複数実行可能
       // db.ExecuteSQL("delete from test where a='inaba'");                // 各種SQLコマンドの実行 複数実行可能
       // db.ExecuteSQL("delete from test where a='inaba'");                // 各種SQLコマンドの実行 複数実行可能
92行目: 94行目:
     }
     }
     catch(...)
     catch(...)
     { // SQLでエラーが発生した場合はここで捕捉できる
     { // SQLでエラーが発生した場合はここで捕捉できる
      // メモリリークのように見えるがODBCドライバが自動的に解放する
      // メモリリークのように見えるがODBCドライバが自動的に解放する
     }
     }