我有一个使用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()
实际运行它,但我不确定哪些字段将被更改,也不确定表中的哪些键将更新查询限制为
答案 0 :(得分:0)
“但我不确定哪些字段会被更改,也不确定表格中的哪些键限制更新查询。”
如何只选择ROWID与其他字段,然后根据它建立更新?