c - SQLite3 : the database was created empty?

标签 c sqlite

我正在尝试在我的 C 程序上使用 sqlite3 创建一个带有表的数据库,但是该数据库始终创建为空,尽管它是使用 sqlite shell 创建的非空的, 下面是我的代码:

int main(void)
{
    printf("hello\n");
    sqlite3 *sqdb;
    sqlite3_initialize();
    const char* db = "test";
    sqlite3_open(db, &sqdb);
    const char* stmt = "CREATE TABLE IF NOT EXISTS testtable(creationdate DATE, data VARCHAR);";
    sqlite3_stmt *ppstmt;
    if (sqlite3_prepare_v2(sqdb, stmt, -1, &ppstmt, 0)!=SQLITE_OK)printf("error!\n");
    sqlite3_finalize(ppstmt);
    getch();
    return 0;
}

请帮我解决这个问题。

最佳答案

sqlite3_prepare_v2() 单独编译 SQL 但不运行它。在编译后的语句上调用 sqlite3_step() 来运行它,或者使用 sqlite3_exec() 将 prepare+step+finalize 组合到一个函数调用中。

关于c - SQLite3 : the database was created empty?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23525340/

相关文章:

c - Gdb 函数入口点未知

c - 如果一个文件存储在硬盘中,为什么我们要用一个指针来创建它呢?

sql - SQL/SQlite在having子句中嵌套选择

ios 应用程序使用 icu 编译 sqlite fts,但是当我输入像 "z"这样的字母时,它无法得到完美的答案

SQLite 比较日期

c - 在 MinGW 3.4.5 中使用 -ansi 开关的问题

C多线程嵌套for循环-超参数网格搜索的组合爆炸问题

c - GDB:将断点分配给符号更改

ios - 模拟器中的 libsqlite 和 iOS 编译

android - 创建表方法中的 SQLite 语法错误