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

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

228行目: 228行目:


== レコードの挿入 ==
== レコードの挿入 ==
==== 基本的な挿入 ====
  <syntaxhighlight lang="c++">
  <syntaxhighlight lang="c++">
  #include <afxdb.h>
  #include <afxdb.h>
252行目: 253行目:
     db.BeginTrans();
     db.BeginTrans();
   
   
    // 日付文字列のフォーマット(YYYY-MM-DD HH:MM:SS)
    COleDateTime currentDateTime = COleDateTime::GetCurrentTime();
    CString strDateTime = currentDateTime.Format(_T("%Y-%m-%d %H:%M:%S"));
    // 数値の金額をフォーマット (小数点以下2桁)
    double dblAmount = 1234.56;
    CString strAmount;
    strAmount.Format(_T("%.2f"), dblAmount);
    // バイナリデータの準備 (例 : 16進数データ)
    BYTE binaryData[] = {0x01, 0x02, 0x03, 0x04};
    CString strBinary;
    for (int i = 0; i < sizeof(binaryData); i++) {
        CString temp;
        temp.Format(_T("%02X"), binaryData[i]);
        strBinary += temp;
    }
     // INSERT文の実行
     // INSERT文の実行
     // 注意:実際のテーブル構造に合わせてカラム名と値を設定する必要があります
     // 注意:実際のテーブル構造に合わせてカラム名と値を設定する必要があります
290行目: 309行目:
  // データベース接続のクローズ
  // データベース接続のクローズ
  db.Close();
  db.Close();
</syntaxhighlight>
<br>
==== 各データ型の挿入 ====
<syntaxhighlight lang="c++">
// INSERT文の作成
CString strSQL;
strSQL.Format(_T("INSERT INTO SampleTable ")
              _T("(VarcharColumn, ")    // VARCHAR型
              _T("NvarcharColumn, ")    // NVARCHAR型
              _T("IntColumn, ")          // INT型
              _T("BigIntColumn, ")      // BIGINT型
              _T("SmallIntColumn, ")    // SMALLINT型
              _T("TinyIntColumn, ")      // TINYINT型
              _T("BitColumn, ")          // BIT型
              _T("DecimalColumn, ")      // DECIMAL型
              _T("FloatColumn, ")        // FLOAT型
              _T("DateColumn, ")        // DATE型
              _T("DateTimeColumn, ")    // DATETIME型
              _T("DateTime2Column, ")    // DATETIME2型
              _T("TimeColumn, ")        // TIME型
              _T("BinaryColumn, ")      // BINARY型
              _T("UniqueIdentifier) ")  // UNIQUEIDENTIFIER型
              _T("VALUES ")
              _T("('%s', ")              // VARCHAR
              _T("N'%s', ")              // NVARCHAR(Unicode文字列)
              _T("%d, ")                // INT
              _T("%I64d, ")              // BIGINT
              _T("%d, ")                // SMALLINT
              _T("%d, ")                // TINYINT
              _T("%d, ")                // BIT
              _T("%s, ")                // DECIMAL
              _T("%f, ")                // FLOAT
              _T("'%s', ")              // DATE
              _T("'%s', ")              // DATETIME
              _T("'%s', ")              // DATETIME2
              _T("'%s', ")              // TIME
              _T("0x%s, ")              // BINARY
              _T("'%s')"),              // UNIQUEIDENTIFIER
              // 各データ型の値を指定
              _T("テスト文字列"),      // VARCHAR値
              _T("Unicode文字列"),    // NVARCHAR値
              12345,                  // INT値
              9223372036854775807LL,  // BIGINT値 (最大値)
              32767,                  // SMALLINT値
              255,                    // TINYINT値
              1,                      // BIT値 (0または1)
              strAmount,              // DECIMAL値
              123.456789,            // FLOAT値
              currentDateTime.Format(_T("%Y-%m-%d")),          // DATE値
              strDateTime,                                    // DATETIME値
              strDateTime,                                    // DATETIME2値
              currentDateTime.Format(_T("%H:%M:%S.0000000")),  // TIME値
              strBinary,                                      // BINARY値
              _T("12345678-1234-1234-1234-123456789012")      // UNIQUEIDENTIFIER値
);
  </syntaxhighlight>
  </syntaxhighlight>
<br><br>
<br><br>