Sqlite的API编程初体验
Sqlite是一个嵌入式数据库,现在用的挺多的,具体的特性、用途在官网上讲的很详细了(见http://www.sqlite.org/docs.html) 还有些书,官网上也有推荐(见http://www.sqlite.org/books.html): 《The Definitive Guide to SQLite (2nd edition,2010)》 《Using SQLite (2010)》 《SQLite 3 - Einstieg in die Datenbankwelt (2010)》 《Inside Symbian SQL (2010)》 《The SQL Guide to SQLite (2009)》 《An Introduction to SQLite - 2nd Edition (2009)》等等。 我下载了第一本看了下,中文名叫《SQLite权威指南》,里面讲的挺详细的,包括各个平台的安装,管理,SQL语句,API等。
在官网的《SQLiteIn5MinutesOrLess》小节中有段小示例程序,我改了下,自己体验了把: //NotUsed是没使用的,从sqlite3_exec可以传递给回调函数的通道 //argc是返回行的列数 //argv是返回行的字符串数组形式 //azColName是返回行每个列的名字,和argv顺序对应 static int callback(void *NotUsed,int argc,char **argv,char **azColName){ int i; for(i=0; i<argc; i++){ printf("%s = %sn",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!=2 ){ fprintf(stderr,"Usage: %s DATABASE SQL-STATEMENTn",argv[0]); return(1); } rc = sqlite3_open(argv[1],&db);//打开句柄 if( rc ){ fprintf(stderr,"Can't open database: %sn",sqlite3_errmsg(db)); sqlite3_close(db); return(1); } while (1) { char sqlstatement[1000] = {0}; printf("INPUT A SQL STATEMENT : "); fflush(stdout); gets(sqlstatement); rc = sqlite3_exec(db,sqlstatement,callback,&zErrMsg);//执行语句 if( rc!=SQLITE_OK ){ fprintf(stderr,"SQL error: %sn",zErrMsg); sqlite3_free(zErrMsg); } } sqlite3_close(db); return 0; }
编译用gcc:gcc sqlitetest.c -o sqlitetest -g -Wall -lsqlite3 下面是已经建好的表test:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |