gpt4 book ai didi

ios - 从 sqlite3 数据库 iOS 7 中删除所有记录

转载 作者:行者123 更新时间:2023-11-29 10:45:32 25 4
gpt4 key购买 nike

在我的应用程序中,我将数据存储在我的 sqlite3 数据库中,并将我所有的 sqlite3 数据库上传到我的在线服务器,一旦它复制到我的服务器,我想删除我存储在本地数据库中的所有记录。

我有两个 View Controller ,第一个 View Controller ,我将数据存储到 sqlite3 第二个 View Controller ,我用来将数据加载到我提供的服务器,就像用户连接到网络一样上传数据。

我想在将数据上传到我的服务器后删除我本地数据库中的所有记录。

我已经尝试了一些方法,但它不起作用,请告诉我如何解决这个问题。

- (void) Delete_LoginData 
{
if(sqlite3_open([self.filePath UTF8String], &db) == SQLITE_OK)
{
const char *sql = "DELETE * FROM reg";
sqlite3_stmt *statement;
if(sqlite3_prepare_v2(db, sql,-1, &statement, NULL) == SQLITE_OK)
{
sqlite3_reset(statement);
}
}
}

我在我的 Reachability 中调用了这个函数。

- (BOOL)reachable
{
Reachability *reach = [Reachability reachabilityWithHostName:@"www.google.com"];
NetworkStatus internetStatus = [reach currentReachabilityStatus];

if(internetStatus == NotReachable)
{
}
else
{
[self Delete_LoginData];
}

return YES;
}

我的文件路径。

- (NSString *) filePath
{
NSArray *paths = filepath, YES);

return [[paths objectAtIndex:0] stringByAppendingPathComponent:@"bp.sqlite"];
}

代码打开数据库。

- (void)openDB
{
if (sqlite3_open([[self filePath] UTF8String], &db)!=SQLITE_OK)
{
sqlite3_close(db);
NSAssert(0, @"Database failed to open");
}
else
{
NSLog(@"database opened");
}
}

我已经使用上述方法从我的本地数据库中删除了记录它不起作用请指出我做错的地方。

谢谢。

最佳答案

使用sqlite3_step代替sqlite3_reset来执行查询

if(sqlite3_open([self.filePath UTF8String], &db) == SQLITE_OK)
{
const char *sql = "DELETE FROM reg";
sqlite3_stmt *statement;
if(sqlite3_prepare_v2(db, sql,-1, &statement, NULL) == SQLITE_OK)
{
if(sqlite3_step(statement) == SQLITE_DONE){
// executed
}else{
//NSLog(@"%s",sqlite3_errmsg(db))
}
}
sqlite3_finalize(statement);
}
sqlite3_close(db);

关于ios - 从 sqlite3 数据库 iOS 7 中删除所有记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22550559/

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