gpt4 book ai didi

c - sqlite3 中的表创建不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 06:30:49 24 4
gpt4 key购买 nike

我在 sqlite3 中创建一个表时遇到问题。基本上,我在创作中使用的代码(c语言)如下:

do{
sprintf(buffer, "CREATE TABLE new_tab AS SELECT * FROM fileslog WHERE file_owner='%s' AND state='%s';", file_owner, state);

rc = sqlite3_prepare(db, buffer, -1, &result, NULL);

}while((rc == SQLITE_BUSY) || (rc == SQLITE_LOCKED));

我的问题是当我执行这段代码时没有创建任何表。我打印了 rc 变量以查看可能的错误,但它的值为 0 (SQLITE_OK)。我不知道它正在发生,也不知道错误在哪里。

最佳答案

您只是准备要执行的 SQL 语句。

实际执行它,调用sqlite3_step .

steps involved according to the the SQL Statement Object documentation是:

  1. 使用 sqlite3_prepare_v2() 创建对象或相关职能。
  2. 将值绑定(bind)到 host parameters使用 sqlite3_bind_*() 接口(interface)。
  3. 通过调用 sqlite3_step() 运行 SQL一次或多次。
  4. 使用 sqlite3_reset() 重置语句然后返回第 2 步。执行此操作零次或多次。
  5. 使用 sqlite3_finalize() 销毁对象.

(以上列表和链接来自 official documentation。)

关于c - sqlite3 中的表创建不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20776859/

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