- 论坛徽章:
- 0
|
/* ###################################
program.c
这是一个sqlite数据库示例,显示程序调用的方法.
###################################*/
#include
#include
/* 回调函数,用在select语句返回记录集,返回给客户。argc是字段个数,字段内容是argv,字段名
azColName,NotUsed是调用了callback的次数 */
static int callback(void *NotUsed,int argc,char **argv,char **azColName)
{
int *p=(int *)Used; //count record number.
(*p)++;
int i;
for(i=0;i
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]);
exit(1);
}
rc = sqlite3_open(argv[1], &db); //这是打开数据库;
if( rc ){
fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
sqlite3_close(db);
exit(1);
}
int num=0;
rc = sqlite3_exec(db, argv[2],callback,(void *)&num, &zErrMsg);
/* 这是执行调用语句,db是打开的描述符,argv[2]是sql语句,调用callback来显示记录集,
num是传给callback的参数,一直调用callback到遇到NULL才返回。 */
if( rc!=SQLITE_OK ){
fprintf(stderr, "SQL error: %s\n", zErrMsg);//zErrMsg是callback返回的错误信息
sqlite3_free(zErrMsg);
}
printf("num is %d\n",num);
sqlite3_close(db);
return 0;
}
ex:
./program myfoo.db "select * from saleorder;"
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/21905/showart_212317.html |
|