ADO を使用して Oracle データベースと通信する C++ アプリケーションがあります。オフライン ドキュメントをサポートするためにアプリケーションを更新しています。ローカル側に SQLite を実装することにしました。
適切なコードを呼び出す ADO クラスのラッパーを実装しました。ただし、行を追加/編集/削除する ADO の方法は、SQLite で実装するのが少し難しいです。
ADO の場合、次のように記述します。
CADODatabase db;
CADORecordset rs( &db );
db.Open( "connection string" );
rs.Open( "select * from table1 where table1key=123" );
if (!rs.IsEOF())
{
int value;
rs.GetFieldValue( "field", value );
if (value == 456)
{
rs.Edit();
rs.SetFieldValue( "field", 456 );
rs.Update();
}
}
rs.Close();
db.Close();
この単純な例では、更新プログラムを発行するだけでもかまいませんが、実際のコードはかなり複雑です。
実際にデータを更新するためにEdit()
との間で呼び出しを取得するにはどうすればよいですか? Update()
私の最初の考えは、Edit()
構成を別のクエリにしてUpdate()
実際に実行することですが、どのフィールドが変更されるのか、テーブルのどのキーが更新クエリを制限するのかわかりません。