gpt4 book ai didi

iphone - 如何在 Objective-c 中使用 sqlite3 PRAGMA user_version?

转载 作者:IT王子 更新时间:2023-10-29 06:19:54 24 4
gpt4 key购买 nike

我正在尝试检查 sqlite 数据库的 user_version。我有一个管理工具来升级版本,但我不明白 pragma 语句的语法。我期待测试 if 语句中的值。有人可以提供代码示例吗?当我在我的 Objective-C 代码中嵌入 pragma 语句时,编译器抛出错误。

最佳答案

我在 newtover 的启发下弄明白了,深入研究 FMDB 并重新阅读了 sqlite3 文档(我认为它仍然很模糊)。当我对需要迁移的模式进行显着更改时,此代码返回我在管理工具中遇到的值。

-(int)queryUserVersion: (sqlite3*) db {
// get current database version of schema
static sqlite3_stmt *stmt_version;
int databaseVersion;

if(sqlite3_prepare_v2(db, "PRAGMA user_version;", -1, &stmt_version, NULL) == SQLITE_OK) {
while(sqlite3_step(stmt_version) == SQLITE_ROW) {
databaseVersion = sqlite3_column_int(stmt_version, 0);
NSLog(@"%s: version %d", __FUNCTION__, databaseVersion);
}
NSLog(@"%s: the databaseVersion is: %d", __FUNCTION__, databaseVersion);
} else {
NSLog(@"%s: ERROR Preparing: , %s", __FUNCTION__, sqlite3_errmsg(db) );
}
sqlite3_finalize(stmt_version);

return databaseVersion;
}

对于模式版本,我有一个类似的方法,其中 sql 语句更改为 "PRAGMA schema_version;"

关于iphone - 如何在 Objective-c 中使用 sqlite3 PRAGMA user_version?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2659797/

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