ADOを使用してOracleデータベースと通信するC++アプリケーションがあります。オフライン文書をサポートするようにアプリケーションを更新しています。私はローカル側でSQLiteを実装することに決めました。C++でADOの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()
が実際にそれを実行することですが、どのフィールドが変更されるのか、テーブルから更新クエリを制限するキーがわからないのです。
多分私は何かを紛失しています(私はADO.NETは知っていますが、実際はADOではありません)が、なぜあなた自身のラッパーを書く必要がありますか? SQLite ODBCドライバ(http://www.ch-werner.de/sqliteodbc/)とADO-ODBCブリッジ(http://msdn.microsoft.com/en-us/library/aa227219 VS.60).aspx)? –
何もインストールせずにODBCドライバを使用できますか?私はインストールすることなくUSBドライブを走らせることを望んでいる。 –
C++のラッパーを調査しましたか? http://www.sqlite.org/cvstrac/wiki?p=SqliteWrappers いくつかのADOの目標を書き留めます。 –