sqlite没有更新为什么返回值不是-1?

我每次从服务端请求数据以后就做下面判断

Cursor cursor = db.query(tablename, null, whereStr,
new String[] { tempid }, null, null, null);

if (cursor.getCount() > 0) {
num = db.update(tablename, cv, whereStr, new String[] { tempid });

//Log.v("abc", "更新" + tablename +" "+ num + "条数据");
} else {
num = db.insert(tablename, null, cv);
//Log.v("abc", "增加" + tablename +" "+ num + "条数据");
}
cursor.close();
db.close();

return num;
但是没有更新为什么num返回值是1呢?

慕村225694
浏览 1440回答 1
1回答

天涯尽头无女友

您好,这样的:Result Codes#define SQLITE_OK 0 /* Successful result *//* beginning-of-error-codes */#define SQLITE_ERROR 1 /* SQL error or missing database */#define SQLITE_INTERNAL 2 /* Internal logic error in SQLite */#define SQLITE_PERM 3 /* Access permission denied */#define SQLITE_ABORT 4 /* Callback routine requested an abort */#define SQLITE_BUSY 5 /* The database file is locked */#define SQLITE_LOCKED 6 /* A table in the database is locked */#define SQLITE_NOMEM 7 /* A malloc() failed */#define SQLITE_READONLY 8 /* Attempt to write a readonly database */#define SQLITE_INTERRUPT 9 /* Operation terminated by sqlite3_interrupt()*/#define SQLITE_IOERR 10 /* Some kind of disk I/O error occurred */#define SQLITE_CORRUPT 11 /* The database disk image is malformed */#define SQLITE_NOTFOUND 12 /* Unknown opcode in sqlite3_file_control() */#define SQLITE_FULL 13 /* Insertion failed because database is full */#define SQLITE_CANTOPEN 14 /* Unable to open the database file */#define SQLITE_PROTOCOL 15 /* Database lock protocol error */#define SQLITE_EMPTY 16 /* Database is empty */#define SQLITE_SCHEMA 17 /* The database schema changed */#define SQLITE_TOOBIG 18 /* String or BLOB exceeds size limit */#define SQLITE_CONSTRAINT 19 /* Abort due to constraint violation */#define SQLITE_MISMATCH 20 /* Data type mismatch */#define SQLITE_MISUSE 21 /* Library used incorrectly */#define SQLITE_NOLFS 22 /* Uses OS features not supported on host */#define SQLITE_AUTH 23 /* Authorization denied */#define SQLITE_FORMAT 24 /* Auxiliary database format error */#define SQLITE_RANGE 25 /* 2nd parameter to sqlite3_bind out of range */#define SQLITE_NOTADB 26 /* File opened that is not a database file */#define SQLITE_ROW 100 /* sqlite3_step() has another row ready */#define SQLITE_DONE 101 /* sqlite3_step() has finished executing *//* end-of-error-codes */Extended Result Codes#define SQLITE_IOERR_READ (SQLITE_IOERR | (1<<8))#define SQLITE_IOERR_SHORT_READ (SQLITE_IOERR | (2<<8))#define SQLITE_IOERR_WRITE (SQLITE_IOERR | (3<<8))#define SQLITE_IOERR_FSYNC (SQLITE_IOERR | (4<<8))#define SQLITE_IOERR_DIR_FSYNC (SQLITE_IOERR | (5<<8))#define SQLITE_IOERR_TRUNCATE (SQLITE_IOERR | (6<<8))#define SQLITE_IOERR_FSTAT (SQLITE_IOERR | (7<<8))#define SQLITE_IOERR_UNLOCK (SQLITE_IOERR | (8<<8))#define SQLITE_IOERR_RDLOCK (SQLITE_IOERR | (9<<8))#define SQLITE_IOERR_DELETE (SQLITE_IOERR | (10<<8))#define SQLITE_IOERR_BLOCKED (SQLITE_IOERR | (11<<8))#define SQLITE_IOERR_NOMEM (SQLITE_IOERR | (12<<8))#define SQLITE_IOERR_ACCESS (SQLITE_IOERR | (13<<8))#define SQLITE_IOERR_CHECKRESERVEDLOCK (SQLITE_IOERR | (14<<8))#define SQLITE_IOERR_LOCK (SQLITE_IOERR | (15<<8))#define SQLITE_IOERR_CLOSE (SQLITE_IOERR | (16<<8))#define SQLITE_IOERR_DIR_CLOSE (SQLITE_IOERR | (17<<8))#define SQLITE_IOERR_SHMOPEN (SQLITE_IOERR | (18<<8))#define SQLITE_IOERR_SHMSIZE (SQLITE_IOERR | (19<<8))#define SQLITE_IOERR_SHMLOCK (SQLITE_IOERR | (20<<8))#define SQLITE_IOERR_SHMMAP (SQLITE_IOERR | (21<<8))#define SQLITE_IOERR_SEEK (SQLITE_IOERR | (22<<8))#define SQLITE_LOCKED_SHAREDCACHE (SQLITE_LOCKED | (1<<8))#define SQLITE_BUSY_RECOVERY (SQLITE_BUSY | (1<<8))#define SQLITE_CANTOPEN_NOTEMPDIR (SQLITE_CANTOPEN | (1<<8))#define SQLITE_CORRUPT_VTAB (SQLITE_CORRUPT | (1<<8))#define SQLITE_READONLY_RECOVERY (SQLITE_READONLY | (1<<8))#define SQLITE_READONLY_CANTLOCK (SQLITE_READONLY | (2<<8))Conflict resolution modes#define SQLITE_ROLLBACK 1/* #define SQLITE_IGNORE 2 // Also used by sqlite3_authorizer() callback */#define SQLITE_FAIL 3/* #define SQLITE_ABORT 4 // Also an error code */#define SQLITE_REPLACE 5These constants are returned by sqlite3_vtab_on_conflict() to inform a virtual table implementation what the ON CONFLICT mode is for the SQL statement being evaluated.
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

iOS