勇芳软件工作室.汉化:  SQLite3 API Functions > Database Connection >

sqlite3_errcode

Previous pageReturn to chapter overviewNext page

描述

 

返回与数据库连接相关联的最近失败的sqlite3_* API调用的数字结果代码。如果先前的API调用失败,但最近的API调用成功,则sqlite3_errcode的返回值未定义。

 

C / C ++语法

 

int sqlite3_errcode(sqlite3 *db);

 

PB语法

 

FUNCTION sqlite3_errcode ( _

BYVAL hDbc AS DWORD _

) AS LONG

 

参数

 

pDb

 

[in]数据库连接句柄。必须是从sqlite3_opensqlite3_open16sqlite3_open_v2获取的NULL指针或sqlite3对象指针。

 

返回值

 

错误代码。

 

备注

 

当使用串行线程模式时,可能是在第一个错误的时间和对这些函数的调用之间的另一个线程上发生第二个错误。发生这种情况时,会报告第二个错误,因为这些功能总是报告最近的结果。为了避免这种情况,在所有调用这里列出的函数之后,每个线程可以在开始使用D之前调用sqlite3_mutex_enter(sqlite3_db_mutex(D))并调用sqlite3_mutex_leave(sqlite3_db_mutex(D))来获得数据库连接D的独占使用。已经完成

 

如果一个函数与SQLITE_MISUSE失败,那意味着应用程序调用的函数不正确。在这种情况下,错误代码和消息可能被设置或可能不被设置。

 

C ++实现代码

 

/*

** Return the most recent error code generated by an SQLite function. If NULL is

** passed to this function, we assume a malloc() failed during sqlite3_open().

*/

SQLITE_API int sqlite3_errcode(sqlite3 *db){

if( db && !sqlite3SafetyCheckSickOrOk(db) ){

  return SQLITE_MISUSE_BKPT;

}

if( !db || db->mallocFailed ){

  return SQLITE_NOMEM;

}

return db->errCode & db->errMask;

}