Sqlite库的基本操作
Sqlite 基本操作
打开数据库
sqlite3* SQ_DB;
char *zErrMsg = 0;
int nRes =  sqlite3_open("test.db", &SQ_DB);
if (nRes!=SQLITE_OK)
{
	return -1;
}
执行sql语句
/* Create SQL statement */
std::string sql = "CREATE TABLE COMPANY("  \
	"ID INT PRIMARY KEY NOT NULL," \
	"NAME   TEXTNOT NULL," \
	"AGEINT NOT NULL," \
	"ADDRESSCHAR(50)," \
	"SALARY REAL );";
/* Execute SQL statement */
nRes = sqlite3_exec(SQ_DB, sql.c_str(), 0, 0, 0);
if (nRes != SQLITE_OK){
	fprintf(stderr, "SQL error: %s\n", zErrMsg);
	sqlite3_free(zErrMsg);
}
else{
	fprintf(stdout, "Table created successfully\n");
}
查询结果
- 
回调方式 static int callback(void *NotUsed, int argc, char **argv, char **azColName) { int i; for (i = 0; i < argc; i++) { printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL"); } printf("\n"); return 0; }
- 
TABLE方式 char **dbResult; int nRow = 0; int nColumn = 0; sql = "SELECT * FROM COMPANY"; int result = sqlite3_get_table(SQ_DB, sql.c_str(), &dbResult, &nRow, &nColumn, 0); string strLine; for (int i=1; i<=nRow; i++) { for (int j = 0; j<nColumn; j++) { strLine = dbResult[i*nColumn + j]; cout << setw(10) <<strLine; } cout<< endl; } if (dbResult) { sqlite3_free_table(dbResult); }
关闭数据库
sqlite3_close(SQ_DB);

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号