我有一个使用 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()
实际运行它,但我不确定哪些字段将被更改,也不确定表中的哪些键将更新查询限制为。