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 回答