SQLite3的API应用
发布时间:2020-12-12 20:23:26 所属栏目:百科 来源:网络整理
导读:首先是一个简单的应用: 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; iargc; i++) { printf("%s = %s/n",azColName[i],argv[i] ? argv[i] : "NULL"); }
首先是一个简单的应用: 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,&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 = %sn",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,&errmsg) != SQLITE_OK) { printf("%sn",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 tablen"); sql="SELECT *FROM PHONETABLE"; int rc = sqlite3_exec(db,sql,&errmsg); if( rc!=SQLITE_OK ) { fprintf(stderr,"SQL error: %sn",errmsg); } //Delete printf("Delete 'Jack' from tablen"); sql="DELETE FROM phonetable where name='Jack'"; doCmd(db,sql); printf("Show the tablen"); sql="SELECT *FROM PHONETABLE"; rc = sqlite3_exec(db,errmsg); } //Change printf("Alter Jackson to Mike.n"); sql="update phonetable set name='Jack' where name='Jone'"; doCmd(db,errmsg); } sqlite3_close(db); return 0; } 这个属于升级版了。操作包括了 1.建立数据库; 2.插入数据; 3.删除数据; 4.修改数据; 5.以及查询数据; 各位看官自己慢慢看吧。 就到这里,后续有新的研究成果在写出来 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |