Sqlite的API编程初体验

前端之家收集整理的这篇文章主要介绍了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 = %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!=2 ){
		fprintf(stderr,"Usage: %s DATABASE sql-STATEMENT\n",argv[0]);
		return(1);
	}
	rc = sqlite3_open(argv[1],&db);//打开句柄
	if( rc ){
		fprintf(stderr,"Can't open database: %s\n",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: %s\n",zErrMsg);
            sqlite3_free(zErrMsg);
        }
    }

    sqlite3_close(db);
    return 0;
}


主要API只有以下几个:先用sqlite3_open()打开一个句柄,然后用sqlstatement接收终端输入的sql语句(可以是用分号分割的多个语句),然后用sqlite3_exec()执行该语句,sql语句返回行由作为该函数的第三个参数的回调函数callback()输出到终端。


编译用gcc:gcc sqlitetest.c -o sqlitetest -g -Wall -lsqlite3

下面是已经建好的表test:



运行该程序结果:

猜你在找的Sqlite相关文章