Mysql 比较C中的sqlite错误消息

Mysql 比较C中的sqlite错误消息,mysql,c,database,Mysql,C,Database,我在申请中面临一个障碍。在以前的软件中,我们有一个没有任何版本字段的数据库。这次我将它添加到数据库中 基本上我们有2个数据库文件1:读/写和2:只读。我正在更新只读数据库并更新软件。在运行时,程序将检查只读数据库中是否有更改,然后用读/写数据库文件替换此数据库 问题是,当sqlite检测到一个新列时,它将通过一个错误“no-this-column”dbversion“”返回。我想处理此消息并调用我的db替换函数 代码如下所示 rc = sqlite3_prepare_v2(db_handle ,

我在申请中面临一个障碍。在以前的软件中,我们有一个没有任何版本字段的数据库。这次我将它添加到数据库中

基本上我们有2个数据库文件1:读/写和2:只读。我正在更新只读数据库并更新软件。在运行时,程序将检查只读数据库中是否有更改,然后用读/写数据库文件替换此数据库

问题是,当sqlite检测到一个新列时,它将通过一个错误“no-this-column”dbversion“”返回。我想处理此消息并调用我的db替换函数

代码如下所示

rc = sqlite3_prepare_v2(db_handle , query_getGlobalAudioPropVersion , -1, &stmt_getGlobalAudioPropVersion , NULL);
        if ( rc != SQLITE_OK)
        {
            ALOGE("Line : %d sqlite3_prepare_v2 failed with error : %s retval : %d\n",__LINE__, sqlite3_errmsg(db_handle),rc);
            //ret = AUDMGR_ERR_SQLITE_OPERATION_FAILED;

            strcpy(message , sqlite3_errmsg(db_handle));
            if(strncmp(message,"no such",8)==0)
            {
                resetToFactoryDefaults();
            }
        }

我正在将错误消息复制到一个字符“message”中,并将其与“no-such”进行比较。它不起作用。请建议一些帮助。

为什么要放置
8
?试着使用
7
,比如
if(消息,“no-such”,7)==0)
正确,好像我数了8。但是你认为它对我正在尝试的东西有用吗?不是很确定。但是无论如何,比较终止null肯定不会起作用,因为
消息
包含更长的字符串:-)是的,请更正字符串更长。你有什么建议吗?我已经在第一条评论中建议了修复方法,你试过了吗?