[Don IOS筆記] SQLite的使用

SQLite3

今天再過一次SQLite的用法

做了個例子,放在github上了。
https://github.com/slamdon/learn-IOS/tree/master/SQLite3

抱歉,在整理github的時候已經刪掉了,如果要操作SQLite推薦使用FMDB這個library

SQLite常用函數:

SQLite3_OPEN

  •  用来打开filename指定的SQLite数据库,filename是用UTF-8格式转换的char*字符串。
  • ppDb是数据库句柄的指针。除非不能为数据库句柄分配内存(返回NULL),通常都会返回一个数据库句柄甚至是发生错误的情况下。
  • 成功打开数据库返回SQLITE_OK如果出现异常,可以使用sqlite3_errmsg(contactDB)捕获异常信息描述。

SQLite3_close

  • 用来关闭数据库,成功返回SQLITE_OK.

SQLite3_exec

  • 如果第三个参数不是NULL,符合SQL语句的每个记录都会调用这个回调函数。
  • 第四个参数,是回调函数的第一个参数。
  • 如果发生错误,停止执行,后续的语句被忽略。如果第五个参数不是NULL,它接收sqlite3_malloc()捕获的错误信息。当不在需要返回的错误信息时,为避免内存泄露,应使用sqlite3_free(errmsg);

SQLite_prepare_v2

编译SQL语句

  • 执行SQL查询,必须先编译成字节编码程序。
  • zSql是要进行编译的语句
  • 如果nByte为负数,那么一直读到第一个\0终止符,如果nByte为非负数,那么它就是能读取的zSql的最大字节数。先到‘\0’或者先到nByte字节就读到这里。
  • 如果pzTail不是NULL,那么*pzTail指向zSql中第一个SQL语句结尾的下一个字节,也就是还没有编译过的。
  • ppStmt指向编译过的可以被sqlite3_step()执行的语句,如果出错,它将指向NULL,如果zSql中不包括SQL,也将指向NULL。
  • 如果成功该函数返回SQLITE_OK如果失败返回错误编码。

SQLite3_step

评估SQL语句

  • SQLITE_BUSY说明无法捕获数据库。
  • SQLITE_DONE说明语句成功执行完成。在没有调用sqlite3_reset()时,将不能再使用sqlite3_step()
  • SQLITE_ROW说明有数据返回,每次获得一条row进行处理,可以通过column access functions访问。再调用sqlite3_step()获得下一条数据。
  • SQLITE_ERROR说明出错了,不能再调用sqlite3_step()
  • SQLITE_MISUSE说明这个方法调用得不正确。

2 thoughts on “[Don IOS筆記] SQLite的使用

    1. 真不好意思,我發現比較早期的一些東西我已經刪除了,因為沒有做備份,所以已經消失了@@

      不過,直接操作SQLite3比較麻煩,你可以查看那看FMDB,這是一個將SQLite3封裝過的library,操作起來方便很多!

      github的連結在這裡https://github.com/ccgus/fmdb

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *