赞
踩
./configure --prefix=${pwd}/_install
make
make install
"D:\Microsoft Visual Studio 14.0\VC\bin\lib.exe" /def:sqlite3.def /machine:ix86
.open student.db
CREATE TABLE STUDENT(ID INT PRIMARY KEY NOT NULL, NAME CHAR(128), SCORE INT);
INSERT INTO STUDENT(ID,NAME,SCORE) VALUES (1001, 'JACK', 98);
INSERT INTO STUDENT(ID,NAME,SCORE) VALUES (1002, 'MARY', 96);
INSERT INTO STUDENT(ID,NAME,SCORE) VALUES (1003, 'TOM', 96);
SELECT * FROM STUDENT;
int sqlite3_open(const char *zFilename, sqlite3 **ppDb)
int sqlite3_exec(sqlite3 *ppDb, const char *sql, int (*callback)(void*, int, char**,char**), void *data, char **errmsg)
int sqlite3_get_table(sqlite3 *ppDb, const char *sql, char ***pazResult, int *pnRow, int *pnColumn, char **errmsg)
int sqlite3_close(sqlite3 *db);
#include <stdio.h> #include "sqlite3.h" int callback(void* para, int columenCount, char** columnValue, char** columnName) { char *stData = (char*)para; // 获取的数据可以在这里保存和处理,也可以通过保存到 para 参数中,在外部保存处理 for (int i = 0; i < columenCount; i++) { printf("%s\t%s\n", columnName[i], columnValue[i]); } strcpy(stData, "this is callback"); return 0; } int main(){ sqlite3 *db = NULL; char *zErrMsg = NULL; char sql[1024] = { 0 }; // 打开数据库 int rc = sqlite3_open("student.db", &db); if (rc != SQLITE_OK) { printf("open sqlite failed, errMsg: %s.", sqlite3_errmsg(db)); return -1; } // 创建表 strcpy(sql, "CREATE TABLE STUDENT(ID INT PRIMARY KEY NOT NULL, NAME CHAR(128), SCORE INT);"); rc = sqlite3_exec(db, sql, callback, NULL, &zErrMsg); if (rc != SQLITE_OK) { printf("create table failed, errMsg: %s", zErrMsg); sqlite3_free(zErrMsg); sqlite3_close(db); return -1; } // 插入数据 strcpy(sql, "INSERT INTO STUDENT(ID,NAME,SCORE) VALUES (1001, 'JACK', 98);INSERT INTO STUDENT(ID,NAME,SCORE) VALUES (1002, 'MARY', 96);INSERT INTO STUDENT(ID,NAME,SCORE) VALUES (1003, 'TOM', 96);"); rc = sqlite3_exec(db, sql, callback, NULL, &zErrMsg); if (rc != SQLITE_OK) { printf("insert data failed, errMsg: %s", zErrMsg); sqlite3_free(zErrMsg); sqlite3_close(db); return -1; } char stData[100] = { 0 }; strcpy(sql, "SELECT * FROM STUDENT;"); rc = sqlite3_exec(db, sql, callback, stData, &zErrMsg); if (rc != SQLITE_OK) { printf("query data failed, errMsg: %s", zErrMsg); sqlite3_free(zErrMsg); sqlite3_close(db); return -1; } printf("stData = %s\n", stData); // 同步接口 char **dbResult; int nRow = 0, nColumn = 0; strcpy(sql, "SELECT * FROM STUDENT;"); rc = sqlite3_get_table(db, sql, &dbResult, &nRow, &nColumn, zErrMsg); if (rc != SQLITE_OK) { printf("query data failed, errMsg: %s", zErrMsg); sqlite3_free(zErrMsg); sqlite3_close(db); return -1; } // 打印字段名 for (int i = 0; i < nColumn; i++) { printf("%s\t", dbResult[i]); } printf("\n"); //打印数据 for (int i = nColumn; i <= nRow * nColumn; i += nColumn) { for (int j = 0; j < nColumn; j++) { printf("%s\t", dbResult[i + j]); } printf("\n"); } // 释放dbResult sqlite3_free_table(dbResult); sqlite3_close(db); system("pause"); return 0; }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。