3

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()実際に実行することですが、どのフィールドが変更されるのか、テーブルのどのキーが更新クエリを制限するのかわかりません。

4

1 に答える 1

0

「しかし、どのフィールドが変更されるのか、テーブルのどのキーが更新クエリを制限するのかわかりません。」

残りのフィールドで ROWID を選択し、それに基づいて更新を作成するのはどうですか?

于 2010-11-04T09:23:09.263 に答える