gpt4 book ai didi

c - 是什么原因导致 "no tables in statement"消息?

转载 作者:行者123 更新时间:2023-11-30 17:40:14 25 4
gpt4 key购买 nike

我正在关注this示例程序,但我将使用 SQLite3 而不是 MySQL。

首先,我需要检查user_version以查看表是否已创建且是最新的。

这是我到目前为止的代码:

#include <stdio.h>
#include <dbi/dbi.h>

#define CONF_PATH "./"
#define DB_FILE "db.sqlite3"

int main() {
dbi_conn conn;
dbi_result result;
dbi_inst instance;

long ver = 0;

dbi_initialize_r(NULL, &instance);
conn = dbi_conn_new_r("sqlite3", instance);

dbi_conn_set_option(conn, "sqlite3_dbdir", CONF_PATH);
dbi_conn_set_option(conn, "dbname", DB_FILE);
dbi_conn_set_option(conn, "encoding", "UTF-8");

if (dbi_conn_connect(conn) < 0) {
printf("Could not connect. Please check the option settings\n");
} else {
result = dbi_conn_query(conn, "PRAGMA user_version;");

if (result) {
if (dbi_result_next_row(result)) {
ver = strtol(dbi_result_get_string(result, "user_version"), NULL, 10);
}
dbi_result_free(result);
}

printf("DB Ver. %ld\n", ver);

dbi_conn_close(conn);
}

dbi_shutdown_r(instance);

return 0;
}

一切正常,但我得到一个奇怪的输出:

no tables in statement !
DB Ver. 1

第二行没问题。我在代码的第 33 行打印它。第一个怎么样?很明显,语句中没有表格,但我不打印也不想要此消息...

我的系统是:

Debian sid

gcc(Debian 4.8.2-14)4.8.2

libdbi1 0.9.0-1

libdbd-sqlite3 0.9.0-2

我使用gcc -ldbi -ldl -std=c11 -Wall -Werror dbtest.c -o dbtest构建程序。

最佳答案

这是一个 message printed by libdbi sqlite3 driver find_result_field_types()尝试从查询字符串推断字段类型。

由于它是开源的,您可以 fork 代码并删除您不想要的消息。有一个bug tracker ,也是。

关于c - 是什么原因导致 "no tables in statement"消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21572800/

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