首先是一个简单的应用:
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 = %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,&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,&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,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.以及查询数据;
各位看官自己慢慢看吧。
就到这里,后续有新的研究成果在写出来
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。