Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
尝试插入iphone上的sqlite数据库时断言失败_Iphone_Objective C_Sqlite - Fatal编程技术网

尝试插入iphone上的sqlite数据库时断言失败

尝试插入iphone上的sqlite数据库时断言失败,iphone,objective-c,sqlite,Iphone,Objective C,Sqlite,我真的对这个错误感到失望。我花了两天的时间来解决这个问题。但是它没有得到修复,当当时从数据库获取数据时没有问题。但是当启动insert语句时。我得到以下错误: 在-[NewJourney addJourney],/Users/HarishYadav/Desktop/JourneyMapper/Journey/NewJourney.m:114中断言失败 2011-07-05 17:23:13.739旅程[24328:207]*由于未捕获的异常“NSInternalinconsistenceExce

我真的对这个错误感到失望。我花了两天的时间来解决这个问题。但是它没有得到修复,当当时从数据库获取数据时没有问题。但是当启动insert语句时。我得到以下错误:

在-[NewJourney addJourney],/Users/HarishYadav/Desktop/JourneyMapper/Journey/NewJourney.m:114中断言失败 2011-07-05 17:23:13.739旅程[24328:207]*由于未捕获的异常“NSInternalinconsistenceException”而终止应用程序,原因是:“插入数据时出错。”数据库已锁定“” *第一次抛出时调用堆栈:

这是我在数据库中插入值的代码

-(无效)添加行程 { 如果(addStmt==nil) {

}

这里面有什么问题


提前感谢

您需要在完成对账单后使用

sqlite3_最终确定(声明)


在每个使用数据库交互的函数中。

您需要在完成语句后使用

sqlite3_最终确定(声明)


在每个使用数据库交互的函数中。

检查数据库是否已打开

if(sqlite3_open([temppath UTF8String], &database) == SQLITE_OK)

检查数据库是否已打开

if(sqlite3_open([temppath UTF8String], &database) == SQLITE_OK)


似乎数据库是从其他地方访问的。这就是为什么它说数据库被锁定。尝试调试你的应用程序使用NSZombie。我更喜欢使用FMDB用于sqlite。是的,我的数据库从其他类获得访问权限Jignesh是正确的使用finalize语句,看看它是否工作。但我更喜欢FMDB用于sqlite。它非常容易实现,易于调试和调试你不必为SQLite做太多的挣扎。FMDB将处理所有事情。@Rahul我不知道如何使用FMDB。我现在正在使用SQLite数据库。我认为它会变得一团糟。如果你的应用程序处于完成阶段,请坚持使用SQLite。但为了将来使用FMDB。似乎数据库是从其他地方访问的。这就是为什么它说数据库是锁定的ed.尝试使用NSZombie调试你的应用程序。我更喜欢使用FMDB用于sqlite。是的,我的数据库从其他类获得访问权限Jignesh是正确的,使用finalize语句并查看它是否有效。但我更喜欢FMDB用于sqlite。它非常容易实现,易于调试,而且你不必为sqlite做很多工作。FMDB将处理所有事情。@R啊,我不知道如何使用FMDB。我现在正在使用sqlite数据库。我想它会变得一团糟。如果你的应用程序处于完成阶段,请坚持使用sqlite。但为了将来使用FMDB.sqlite3_finalize函数会将所有事务提交到数据库中,如果你在数据库中插入/更新/选择数据后不执行sqlite3_finalize,sqlite将创建j我们的最终文件和此文件将暂时可用,当您执行sqlite3_finalize时,它将提交到数据库。因此,同时,它将被锁定。我有函数+(void)finalizeStatements{if(数据库)sqlite3_close(数据库);if(数据库)sqlite3_finalize(删除stmt);if(数据库)sqlite3_finalize(添加stmt);if(数据库)sqlite3_finalize(detailStmt);if(database)sqlite3_finalize(updateStmt)}我将此(void)finalizeStatements调用到appdelegate的-(void)应用程序willTerminate:(UIApplication)应用程序{/在应用程序即将终止时调用。另请参见ApplicationIdentinterBackground:.*/[self.journeyList makeObjectsPerformSelector:@selector(saveAllData)];[NewJourney finalizeStatements];}我认为,在每个语句中,您都需要调用sqlite3\u finalize函数sqlite3\u finalize函数将所有事务提交到数据库中,如果您在数据库中插入/更新/选择数据后不执行sqlite3\u finalize,sqlite将创建日志文件,该文件将暂时可用,当您执行sqlite3\u finalize时,它将是comm我有函数+(void)finalizeStatements{if(database)sqlite3_close(database);if(database)sqlite3_finalize(deleteStmt);if(database)sqlite3_finalize(addStmt);if(database)sqlite3_finalize(detailStmt);if(database)sqlite3_finalize(updateStmt)}我称之为(void)appdelegate的-(void)应用程序中的finalizeStatements将终止:(UIApplication)应用程序{/在应用程序即将终止时调用。另请参见ApplicationIdentinterBackground:./[self.journeyList makeObjectsPerformSelector:@selector(saveAllData)];[NewTourney finalizeStatements];}我想,在每个语句中,您都需要调用sqlite3_finalize function@Rakesh Bhatt如何检查数据库是否打开?好的,您还有其他示例项目可以帮助我添加、删除、更新和在行显示项目帮助我。我尝试了这个示例代码项目。您有其他链接可以帮助我摆脱这种情况吗?@Rakesh Bhatt如何检查数据库是否打开?好的,您有任何其他示例项目可以帮助我添加、删除、更新和在行显示项目帮助我。我尝试此示例代码项目。您有任何其他链接可以帮助我摆脱这种情况。