データを追加するには,SQLのINSERT文を利用します。
次に,DBStatementクラス及びDBConnectionクラスを使用して,?パラメタを使用しない更新をする場合と, DBPreparedStatementクラスを使用して,?パラメタを使用した更新をする場合の三通りについて説明します。
DBConnectionクラスのCreateStatementメソッドでDBStatementオブジェクトを生成します。生成されたDBStatementクラスのExecuteメソッドでSQL文を実行してデータを追加します。
//////////////////////////////////////////////////////////////
/// SQLの実行(追加) - DBStatementクラスでINSERT文を指定
// DBStatementオブジェクトの生成
pStatement = pConnect->CreateStatement();
// SQL文の実行
pStatement->Execute("INSERT INTO TABLE1(F1,F2)VALUES(1,100)");
DBConnectionクラスのExecuteDirectメソッドでSQL文を実行してデータを追加します。
この方法は手順が簡単ですが,データをいったん検索してから追加したい場合は,DBStatementクラスを使用してください。DBConnectionクラスでは検索結果を受け取ることができないため,検索ができません。
//////////////////////////////////////////////////////////////
/// SQLの実行(追加) - DBConnectionクラスでINSERT文を指定
// SQL文の実行
pConnect->ExecuteDirect("INSERT INTO TABLE1(F1,F2)
VALUES(1,100)");
?パラメタを指定したINSERT文を指定し,DBConnectionクラスのCreatePreparedStatementメソッドを呼び出し,DBPreparedStatementオブジェクトを生成します。次に, ExecuteメソッドでSQL文をデータベースに通知(解析)し,SetParamメソッドで?パラメタのデータを設定します。そして,ExecuteUpdateメソッドで追加を実行します。
なお,レコードはSetInsertRowsメソッドで設定する数(一度に追加するレコード数)に従って,追加されます。一度に複数レコードを追加する場合,SetParamメソッドの引数には,レコード番号とフィールド番号及びデータ値の,計3個を指定する必要があります。
//////////////////////////////////////////////////////////////
/// SQLの実行(追加)
/// - DBPreparedStatementクラスで?パラメタのあるINSERT文を指定
// DBPreparedStatementオブジェクトの生成
pStatement = pConnect->CreatePreparedStatement
("INSERT INTO TABLE1(F1,F2)VALUES(?,?)");
// SQL文の解析
pStatement->Execute();
// ?パラメタへの値の設定
pStatement->SetParam(1,1);
pStatement->SetParam(2,100);
// 追加の実行
pStatement->ExecuteUpdate();