网站:www.sqlite.org
1、打开数据库:
int sqlite3_open(
const char *filename, /*数据库名,可包含路径*/
sqlite3 **ppDb /*指向sqlite句柄的指针*/
);
成功返回0(宏定义为SQLITE_OK),失败返回错误码。
数据库名存在就打开,不存在就创建并打开。
2、关闭数据库:
int sqlite3_close(sqlite3* );
成功关闭返回0,失败返回错误码,打开一个数据库记得要关闭。
3、出错判断:
char *sqlite3_errmsg(sqlite3* );
4、执行sql操作
int sqlite3_get_table(
sqlite3 *db, /*打开数据库的句柄*/
const char *zSql, /*sql语句*/
char ***pazResult, /*指向sql执行结果的指针*/
int *pnRow, /*满足条件的记录的数目*/
int *pnColumn, /*每条记录包含的字段数目*/
char **pzErrmsg /*错误信息指针的地址*/
);
成功返回0,失败返回错误码。
void sqlite3_free_table(char **result); /*释放存放记录的空间*/
5、执行sql操作:
int sqlite3_exec(
sqlite3 *, /*打开数据库句柄*/
const char *sql, /*sql语句*/
int (*callback) (void *, int, char **, char **), /*执行函数*/
void *, /*函数的参数*/
char **errmsg /*错误信息指针的地址*/
);
成功返回0,失败返回错误码。
执行函数:每找到一条自动执行一次函数
typedef int (*sqlite3_callback) (
void *para, /*传递给函数的参数*/
int f_num, /*记录中包含字段的数目*/
char **f_value, /*每个字段值的指针数组*/
char **f_name /*每个字段名称的指针数组*/
);
------------------------------------------------------------------------------------
示例1:在数据库中创建一个表
#include <stdio.h>
#include <stdlib.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;
char *sql;
/* Open database */
rc = sqlite3_open("test.db", &db);
if( rc ){
fprintf(stderr, "Can‘t open database: %s\n", sqlite3_errmsg(db));
exit(0);
}else{
fprintf(stdout, "Opened database successfully\n");
}
/* Create SQL statement */
sql = "create table company(" \
"id int primary key not null," \
"name text not null," \
"age int not null," \
"address char(50)," \
"salary real );";
/* Execute SQL statement */
rc = sqlite3_exec(db, sql, callback, 0, &zErrMsg);
if( rc != SQLITE_OK ){
fprintf(stderr, "SQL error: %s\n", zErrMsg);
sqlite3_free(zErrMsg);
}else{
fprintf(stdout, "Table created successfully\n");
}
sqlite3_close(db);
return 0;
}
---------------------------------------------------------------------------------
示例2:在创建的表中查询数据
#include <stdio.h>
#include <stdlib.h>
#include <sqlite3.h>
int main(int argc, char* argv[])
{
sqlite3 *db;
char *zErrMsg = 0;
int rc;
char **dbResult;
int nRow, nColumn;
int index = 0;
int i, j;
char *sql;
/* Open database */
rc = sqlite3_open("test.db", &db);
if( rc ){
fprintf(stderr, "Can‘t open database: %s\n", sqlite3_errmsg(db));
exit(0);
}else{
fprintf(stderr, "Opened database successfully\n");
}
/* Create SQL statement */
sql = "select * from company;";
/* Execute SQL statement */
rc = sqlite3_get_table(db, sql, &dbResult, &nRow, &nColumn, &zErrMsg);
if( rc == SQLITE_OK ){
printf("select %d number\n", nRow);
for (i=0; i<nRow; i++) {
for(j=0; j<nColumn; j++) {
printf("name:%s value:%s", dbResult[j], dbResult[index]);
}
printf("\n");
}
}
sqlite3_free_table(dbResult);
sqlite3_close(db);
return 0;
}
版权声明:有不正确的地方,还望各位指正指导,Thanks!