第一步:打开数据库
char *errMsg = NULL;
sqlite3 *db = 0;int ret = 0; //连接数据库
ret = sqlite3_open("..\\Config\\sqlite\\Config2.sqlite",&db);
if ( ret != sqlITE_OK )
{
AfxMessageBox(L"不能打开Config2.sqlite!");
return;
}
相关:sqlite3.h中定义如下
/*
** CAPI3REF: Result Codes
** KEYWORDS: {result code definitions}
**
** Many sqlite functions return an integer result code from the set shown
** here in order to indicate success or failure.
**
** New error codes may be added in future versions of sqlite.
**
** See also: [extended result code definitions]
*/
#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_NOTICE 27 /* Notifications from sqlite3_log() */
#define sqlITE_WARNING 28 /* Warnings from sqlite3_log() */
#define sqlITE_ROW 100 /* sqlite3_step() has another row ready */
#define sqlITE_DONE 101 /* sqlite3_step() has finished executing */
/* end-of-error-codes */
int rc = sqlite3_prepare(db,"SELECT name from students",-1,&stmt,NULL); //返回上述的状态码,成功或者失败的原因
sqlite3_stmt *stmt; //结果集
{
CString str1 = L"";
str1 = (char *)(sqlite3_column_text(stmt,0));
AfxMessageBox(str1);
}
sqlite3_close(db);
测试程序见:
删除: char *errMsg = NULL; int ret = sqlite3_exec(db,"DELETE from DeviceName",NULL,&errMsg);
原文链接:https://www.f2er.com/sqlite/199694.html