ios – 如何调用sqlite3_errmsg来了解sqlite3_prepare_v2失败的原因

ios – 如何调用sqlite3_errmsg来了解sqlite3_prepare_v2失败的原因,第1张

概述基于C的函数sqlite3_prepare_v2返回1.我只想知道可读形式的错误消息并更正我的代码.我正在学习这个作为raywinderlich博客的教程.我遇到过sqlite3_errmsg,我不知道如何使用sqlite3_errmsg函数. 虽然here问了同样的问题,但遗憾的是仍然没有答案. 我想知道错误和纠正将非常感激.谢谢. - (NSArray *)failedBankInfos { 基于C的函数sqlite3_prepare_v2返回1.我只想知道可读形式的错误消息并更正我的代码.我正在学习这个作为raywinderlich博客的教程.我遇到过sqlite3_errmsg,我不知道如何使用sqlite3_errmsg函数.

虽然here问了同样的问题,但遗憾的是仍然没有答案.

我想知道错误和纠正将非常感激.谢谢.

- (NSArray *)FailedBankInfos {    NSMutableArray *retval = [[NSMutableArray alloc]init];    Nsstring *query = @"SELECT ID,name,city,state FROM Failed_banks ORDER BY close_date DESC";    sqlite3_stmt *statement;    int tmp  = sqlite3_prepare_v2(_database,[query UTF8String],-1,&statement,nil);    NSLog(@"%i",tmp); // printing 1    if (sqlite3_prepare_v2(_database,nil)        == sqlITE_OK) {        while (sqlite3_step(statement) == sqlITE_ROW) {            int uniqueID = sqlite3_column_int(statement,0);            char *nameChars = (char *) sqlite3_column_text(statement,1);            char *cityChars = (char *) sqlite3_column_text(statement,2);            char *stateChars = (char *) sqlite3_column_text(statement,3);            Nsstring *name = [[Nsstring alloc] initWithUTF8String:nameChars];            Nsstring *city = [[Nsstring alloc] initWithUTF8String:cityChars];            Nsstring *state = [[Nsstring alloc] initWithUTF8String:stateChars];            NSLog(@"name is  : %@",name);             NSLog(@"city is : %@",city);            FailedBankInfo *info = [[FailedBankInfo alloc]                                    initWithUniqueID:uniqueID name:name city:city state:state];            [retval addobject:info];        }        sqlite3_finalize(statement);    }    else    {        // if part is failing and control is arriving in else.    }    return retval;}
解决方法 您可以使用sqlite3_errmsg(),如:

NSLog(@"Database Error Message : %s",sqlite3_errmsg(_database));

您也可以使用sqlite3_errstr().

The sqlite3_errmsg() and sqlite3_errmsg16() return English-language
text that describes the error,as either UTF-8 or UTF-16 respectively.
Memory to hold the error message string is managed internally. The
application does not need to worry about freeing the result. However,
the error string might be overwritten or deallocated by subsequent
calls to other sqlite interface functions.

The sqlite3_errstr() interface returns the English-language text that
describes the result code,as UTF-8. Memory to hold the error message
string is managed internally and must not be freed by the application.

参考SQLite Error Messages

总结

以上是内存溢出为你收集整理的ios – 如何调用sqlite3_errmsg来了解sqlite3_prepare_v2失败原因全部内容,希望文章能够帮你解决ios – 如何调用sqlite3_errmsg来了解sqlite3_prepare_v2失败的原因所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1013299.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-22
下一篇2022-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存