gpt4 book ai didi

c++ - 如何在 C++ 中为 SQLite 模拟 ADO 的编辑/更新机制?

转载 作者:太空狗 更新时间:2023-10-29 23:20:19 26 4
gpt4 key购买 nike

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

最佳答案

“但我不确定哪些字段将被更改,也不确定表中的哪些键将更新查询限制为。”

如何只选择 ROWID 和其余字段,然后基于它构建更新?

关于c++ - 如何在 C++ 中为 SQLite 模拟 ADO 的编辑/更新机制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/837404/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com