Tag: sqlite

在同一个数据库上同时使用基于core-data和sqlite c的api

AFAIK CoreData可以configuration为在持久性存储中使用sqlite。 所以核心数据不提供使用SQL查询的方式。 所以core-data在后台有sqlite db。 同时使用基于Core-Data和Sqlite c的api访问相同的数据库是否安全? 会导致任何数据损坏是sqllite或任何线程问题。 为什么我要使用任何包装如FMDB或基于C的API是使用SQL查询来查询复杂的数据 请澄清我。

在SQLite iPhone中join查询

我有两个表Visits和Labs 访问有这些字段: id , patientID 实验室有这些字段: id , VisitID And Visit.id = Labs.VisitID 我想得到一个病人的所有旧的实验室报告。 但在实验室表中,我没有patientID字段,所以为此我需要使用visitID字段,使用它可以连接到Visit表,在那里我有patientID 因此,现在使用visitID (一个共同的领域)我想找出病人的所有旧的实验室报告 现在我想要得到一个病人的所有实验室(我知道patientID ) 任何人都可以build议我join这个查询?

当应用程序没有运行时,用推送通知的内容更新SQLite

有没有办法更新SQLite一收到推送通知,但该应用程序目前没有运行(或应用程序被杀害)。 如果通知在应用程序运行或后台运行时到达 – “didReceiveRemoteNotification”方法处理我的更新。 如果通知到达时,应用程序不运行我想更新推送通知到我的sqlite的内容。 当用户点击通知时更新工作,但当用户点击应用程序图标时,更新不起作用。 请帮忙。 谢谢。

单独在Swift中创build自定义的sqlite函数

如何在Swift中添加一个自定义的sqlite函数? 下面的SO问题解决了在涉及坐标的sqlite查询中使用像acos和cos 这样的函数的问题:iOS sqlite没有这样的函数:ACOS错误 build议是添加一个自定义函数。 但是这个例子在Objective-C中给出。 除了桥接到Objective-C有一个本地的Swift函数或库,允许创build自定义函数?

在Swift中复制Sqlite数据库不能正常工作

我正在使用以下代码的目标C复制SQLite数据库,它工作正常。 但是当我把这个代码转换成swift的时候,它在Booltypes上显示错误。 这是客观的C代码 – (void) copyDatabaseIfNeeded { //Using NSFileManager we can perform many file system operations. NSFileManager *fileManager = [NSFileManager defaultManager]; NSError *error; NSString *dbPath = [self getDBPath]; BOOL success = [fileManager fileExistsAtPath:dbPath]; if(!success) { NSString *defaultDBPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"database.sqlite"]; success = [fileManager copyItemAtPath:defaultDBPath toPath:dbPath error:&error]; if (!success) NSAssert1(0, @"Failed to create writable […]

iOS – SQLite插入不插入数据

– (id)init { NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; NSString *databasePath = [documentsDirectory stringByAppendingPathComponent:@"idataBase.sqlite3"]; NSLog(@"Doc path: %@",databasePath); bool databaseAlreadyExists = [[NSFileManager defaultManager] fileExistsAtPath:databasePath]; if (!databaseAlreadyExists){ NSString *databasePathFromApp = [[NSBundle mainBundle] pathForResource:@"idataBase" ofType:@"sqlite3"]; NSLog(@"Main bundle path: %@",databasePathFromApp); [[NSFileManager defaultManager] copyItemAtPath:databasePathFromApp toPath:databasePath error:nil]; } if (sqlite3_open([databasePath UTF8String], &_database) == SQLITE_OK){ NSLog(@"Database opened"); […]

NSManagedObjectContext没有正确保存到SQLite

所以, 我有一个核心数据的问题,并试图将数据正确保存到SQLite数据库。 我有两个“应用程序”:一个用于加载SQLite数据(让我们称之为“Loader.App”),另一个用于显示数据(“Display.App”)。 加载器只是一个基于Web的CMS(它将数据导出为JSON数据)和需要SQLite DB(再次由Core Data加载)的App之间的一个“桥梁”。 当我在Loader.App中保存上下文时,它将数据保存到SQLite文件中。 我可以在SQLite阅读器(如Base.App)中打开此文件,并显示所有的数据。 问题是:当我将该SQLite文件带到Display.App时,它会将该文件复制到文档目录中,但其中没有任何数据。 但是,它具有所有正确的表格 – 就像加载数据之前的SQLite文件一样。 奇怪的是,如果我打开阅读器(Base.App)中的SQLite数据库文件和VACUUM数据库,它加载在Display.App完全罚款 。 从Python中的文件io的经验,我知道,如果你没有正确closures文件,数据不会写入从io缓冲区的文件。 显然,数据正在写入SQLite文件(因此我可以用一个阅读器(Base.App)打开它)。 但它让我怀疑是否有一个文件closures方法,我不打电话? 基本上… 方法1: 运行Loader.App 将MyAppDB.sqlite复制到Display.App 运行Display.App 结果 :MyAppDB.sqlite里面没有数据 方法2: 运行Loader.App 使用reader(Base.App)打开MyAppDB.sqlite 真空 将MyAppDB.sqlite复制到Display.App 运行Display.App 结果 :MyAppDB.sqlite包含数据,我们很高兴。 这里是我的Loader.App的修剪版本: int main(int argc, const char * argv[]) { @autoreleasepool { // Create the managed object context NSManagedObjectContext *context = managedObjectContext(); // Custom […]

iOS Swift从.sql文件导入数据到现有的SQLite数据库

我在我的iOS Swift 3应用程序中使用SharkORM,我想要做的是从SQL脚本文件,使用函数将数据导入到我的SQLite数据库: SharkORM.rawQuery("INSERT INTO `Unit` (Id,name,symbol) VALUES (1,'kg/m²','kg/m²')") 但是,我无法添加任何logging到我的“单位”表,因为我总是得到以下错误: unrecognized token: \"\'k/gm²\"" 任何人都知道为什么这可能会发生? 如果还有另一种方法可以将.sql文件导入我的数据库,即使不使用SharkORM。 提前致谢。

控制从远程服务器iOS获取数据的频率

这是来自这篇文章的后续问题(但完全不同的问题)。 我决定以这种方式检索和存储我的数据在iOS应用程序中: 从远程MySQL数据库中检索数据 使用Apple的核心数据(SQLite)在本地显示和存储它 不过,我的问题是: 如果我的数据很less变化,我可以有条件地做第一步吗? 我的意思是,在一段时间内,从本地数据库中检索数据,但也可以在需要的时候(不是每一次)都做第一步。 我希望我的应用程序能够脱机工作,并且在数据更新时也会得到更新。 这可能吗? 我是iOS开发新手(也是后端开发)。 任何帮助是极大的赞赏。 谢谢。

从iPhone中的Sqllite数据库中获取图像

我想要保存在数据库中的图像,并在数据库中获取图像。我在NSData中转换图像,图像存储在数据库中成功,但是当我从数据库中获取图像,然后crash.it这个警告 警告: – [__ NSCFString bytes]:无法识别的select器发送到实例0x7916000 下面的代码用于保存数据库中的图像 NSData *dataImage1 = UIImagePNGRepresentation(image3.image); NSString *str = [NSString stringWithFormat:@"Insert into Gallery(ImageName) VALUES ('%@')",dataImage1]; [Database executeQuery:str]; //Database.m +(NSString* )getDatabasePath{ NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; NSString *writableDBPath = [documentsDirectory stringByAppendingPathComponent:@"Database"]; return writableDBPath; } +(NSMutableArray *)executeQuery:(NSString*)str{ sqlite3_stmt *statement= nil; sqlite3 *database; NSString *strPath = [self […]