加载中…
个人资料
流云
流云
  • 博客等级:
  • 博客积分:0
  • 博客访问:17,327
  • 关注人气:2
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

sqlite3函数小结

(2007-06-13 20:29:26)
分类: 学习心得

1、打开数据库:
说明:打开一个数据库,如果不存在则自动创建。第一个参数指定文件名,第二个参数则是您定义的 sqlite3 **ppDb 结构体指针,结构体是什么内容暂时没有必要晓得,我们只要晓得它就相当于一个数据库句柄就可以了。
int sqlite3_open(
const char *filename,  /* 数据库文件名(UTF-8)*/

sqlite3 **ppDb /* OUT: SQLite 数据库句柄 */
);

2、关闭数据库:
说明:参数就是sqlite3_open() 获得得 ooDb句柄。通过调用这个函数来关闭数据库。
int sqlite3_close(sqlite3*); //参数就是刚才得结构体,也就是数据库句柄。


3、执行SQL:
说明:这个函数得功能是执行一条或者多条SQL语句,SQL语句之间用“;”号隔开。建议在执行一条或者多条SQL语句得时候,指定第三个参数回调函数,在回调函数中可以获得执行Sql得详细过程,如果所有Sql执行完毕则应该返回0,否则,则说明这次执行并没有完全成功。
第五个参数:如果执行失败(没有返回0)则可以查看第五个阐述得值。来查看详细错误信息。
int sqlite3_exec(
sqlite3*, /* 已经打开的数据库句柄 */
const char *sql,  /* 要执行的Sql语句*/
sqlite_callback,  /* 回调函数*/
void *,  /*传递给回调函数的参数*/
char **errmsg /* 保存错误信息*/
);


4、取当前插入位置:
功能:返回你前一次插入得位置,从1开始,sqlite3* 为你打开数据库所得到得句柄。
long long int sqlite3_last_insert_rowid(sqlite3*);


5、执行Sql查询:
功能:执行一次查询Sql 并且返回得到一个记录集。
int sqlite3_get_table(
  sqlite3*,              /* 已经打开的数据库句柄 */
  const char *sql,       /* 要执行的Sql语句*/
  char ***resultp,       /* 保存返回记录集的指针,包含列名及烈属性值。行优先,从0起计数下标*/
  int *nrow,             /*返回记录行数数*/
  int *ncolumn,          /* 返回记录列数*/
  char **errmsg          /* 返回错误信息*/
  )

6、释放查询结果:
功能:释放当前查询的记录集所占用的内存
void sqlite3_free_table(char **result);

7、sqlite3_free(char **errmsg)
功能:释放存放错误信息的内存空间(3和5中的errmsg必须用此函数释放)。
8、char *sqlite3_mprintf(const char*,...);
char *sqlite3_vmprintf(const char*, va_list);

函数功能与"sprintf()" 相似。函数返回的字符串被写入通过 malloc() 得到的内存空间,因此,永远不会存在内存泄露的问题。这些函数也用于进行构造SQL语句的格式转换。注意,返回的字符串要用sqlite3_free()释放空间。All of the usual printf formatting options apply. In addition, there is a "%q" option. %q works like %s in that it substitutes a null-terminated string from the argument list. But %q also doubles every '\'' character. %q is designed for use inside a string literal.

0

阅读 收藏 喜欢 打印举报/Report
前一篇:C调汇编
后一篇:miss ZZ
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有