首 页 | 产品大全 | 采购参考 | 厂商专区 | 渠道商情 | 商 城 | 二 手 | Internet服务 | 社 区
赛贝斯软件(中国)有限公司北京总部
 如何成为Myprice加盟厂商
公司首页 公司新闻 产品信息 技术支持 驱动下载 使用手册 解决方案
该厂商统计信息
该厂商目前得分:0
技术支持指数:0
 参与评论人数:1
公司旗下品牌
SYBASE/赛贝斯
经营范围
>>数据库软件
>>开发软件
资源下载
>> 产品驱动下载
>> 解决方案下载
>> 使用手册下载
网友互动
>> 我要向该厂商提问
>> 查看全部在线问题
联系方式
厂商电话:010-68568488
厂商网址:
http://www.sybase.com.cn
E_mail :给厂商发送Email
 技术支持  给厂商技术支持打分 
常见问题  
 
  ◇  全部SYBASE/赛贝斯
SQLITE_SCHEMA error是什么错误?为什么会出现该错误?
答案: 当一个准备好的(prepared)SQL语句不再有效或者无法执行时, 将返回一个 SQLITE_SCHEMA 错误。发生该错误时,SQL语句必须使用 sqlite3_prepare() API来重新编译. 在 SQLite 3 中, 一个 SQLITE_SCHEMA 错误只会发生在用 sqlite3_prepare()/sqlite3_step()/sqlite3_finalize() API 执行 SQL 时。而不会发生在使用 sqlite3_exec()时。 在版本2中不是这样。

  准备好的语句失效的最通常原因是:在语句准备好后, 数据库的模式又被修改了。另外的原因会发生在:

  数据库离线:DETACHed.

  数据库被 VACUUMed

  一个用户存储过程定义被删除或改变。

  一个 collation 序列定义被删除或改变。

  认证函数被改变。

  在所有情况下,解决方法是重新编译并执行该SQL语句。 因为一个已准备好的语句可以由于其它进程改变数据库模式而失效, 所有使用 sqlite3_prepare()/sqlite3_step()/sqlite3_finalize() API 的代码都应准备处理 SQLITE_SCHEMA 错误。下面给出一个例子:

  int rc;
  sqlite3_stmt *pStmt;
  char zSql[] = "SELECT .....";
  do {
   /* Compile the statement from SQL. Assume success. */
   sqlite3_prepare(pDb, zSql, -1, &pStmt, 0);
   while( SQLITE_ROW==sqlite3_step(pStmt) ){
    /* Do something with the row of available data */
   }
   /* Finalize the statement. If an SQLITE_SCHEMA erro

此FAQ对您有帮助么?[ | ] | 收藏
 
访问赛贝斯软件(中国)有限公司北京总部官方网站 | 访问IT价格网( Myprice.com.cn )