首先是一个简单的应用:
test_sqlite.c
#include <stdio.h> #include <sqlite3.h> 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; } int main(int argc, char **argv) { sqlite3 *db; char *zErrMsg = 0; int rc; if( argc!=3 ) { fprintf(stderr, "Usage: %s DATABASE SQL-STATEMENT/n", argv[0]); } rc = sqlite3_open(argv[1], &db); if( rc ) { fprintf(stderr, "Can't open database: %s/n", sqlite3_errmsg(db)); sqlite3_close(db); } rc = sqlite3_exec(db, argv[2], callback, 0, &zErrMsg); if( rc!=SQLITE_OK ) { fprintf(stderr, "SQL error: %s/n", zErrMsg); } sqlite3_close(db); return 0; }编译语句:arm-linux-gcc -o test_sqlite test_sqlite.c -lsqlite3 -L/home/bks/sqlite3/lib -I/home/bks/sqlite3/include
需要加入lib和include的路径。
编译完成后使用语句:./test_sqlite test.db "SELECT * FROM phonetable"
这里需要注意的是:我之前在当前目录文件夹下建立了名字:test.db 的数据库,其中包含表格:phonetable
现在是一个高级运用啦:
#include <stdio.h> #include "sqlite3.h" static int callback(void *NotUsed, int ncols, char **values, char **headers) { int i; for(i=0; i<ncols; i++) { printf("%s = %s\n", headers[i], values[i] ? values[i] : "NULL"); } printf("\n"); return 0; } void doCmd(sqlite3 *db,char *pCmd) { char *errmsg=NULL; if (sqlite3_exec(db,pCmd,NULL,NULL,&errmsg) != SQLITE_OK) { printf("%s\n",errmsg); return; } } int main() { sqlite3 *db = NULL; char *errmsg=NULL; printf("Please input the name of DB(*.db):\n"); char dbname[30]; gets(dbname); //Open a DB int result = sqlite3_open(dbname,&db); if (result != SQLITE_OK) { sqlite3_close(db); return; } //Create a Table char *createTableSQL = "CREATE TABLE IF NOT EXISTS PHONETABLE (id integer primary key,name text ,phone_number integer)"; doCmd(db,createTableSQL); printf("Succeed to create test table now.\n"); //Insert char *sql=NULL; sql="INSERT into PHONETABLE (name,phone_number) values('Jone','15901110265')"; doCmd(db,sql); sql="INSERT into PHONETABLE (name,phone_number) values('Jack','13811907568')"; doCmd(db,sql); doCmd(db,"INSERT into PHONETABLE (name,phone_number) values('Jackson','13811907568')"); //Show printf("Show the table\n"); sql="SELECT *FROM PHONETABLE"; int rc = sqlite3_exec(db,sql, callback, 0, &errmsg); if( rc!=SQLITE_OK ) { fprintf(stderr, "SQL error: %s\n", errmsg); } //Delete printf("Delete 'Jack' from table\n"); sql="DELETE FROM phonetable where name='Jack'"; doCmd(db,sql); printf("Show the table\n"); sql="SELECT *FROM PHONETABLE"; rc = sqlite3_exec(db,sql, callback, 0, &errmsg); if( rc!=SQLITE_OK ) { fprintf(stderr, "SQL error: %s\n", errmsg); } //Change printf("Alter Jackson to Mike.\n"); sql="update phonetable set name='Jack' where name='Jone'"; doCmd(db,sql); printf("Show the table\n"); sql="SELECT *FROM PHONETABLE"; rc = sqlite3_exec(db,sql, callback, 0, &errmsg); if( rc!=SQLITE_OK ) { fprintf(stderr, "SQL error: %s\n", errmsg); } sqlite3_close(db); return 0; }
1.建立数据库;
2.插入数据;
3.删除数据;
4.修改数据;
5.以及查询数据;
各位看官自己慢慢看吧。
就到这里,后续有新的研究成果在写出来