0

API cơ bản trong sqlite

Tham khảo: https://sqlite.org/c3ref/funclist.html

I. Nhóm hàm cơ bản

  • sqlite3_open(): Mở file database.

sqlite3_prepare_v2()

  • SQLite không thể chạy string khi mà ta viết "SELECT * FROM ...". Nó cần chuyển đống chuỗi kí tự đó sang bytecode.
  • SQLite có một cái bên trong gọi là Virtual Database Engine, nó chỉ có thể đọc được bytecode.
int sqlite3_prepare_v2(
  sqlite3 *db,            /* Con trỏ đến database */
  const char *zSql,       /* SQL statement, UTF-8 encoded */
  int nByte,              /* Maximum length of zSql in bytes. */
  sqlite3_stmt **ppStmt,  /* OUT: Statement handle */
  const char **pzTail     /* OUT: Pointer to unused portion of zSql */
);

Với nByte = -1, ta sẽ đọc hết chuỗi. Tuy nhiên nếu biết trước số lượng kí tự là bao nhiêu thì truyền số byte vào sẽ giúp chạy nhanh hơn

sqlite3_bind_*()

Đổ dữ liệu vào câu SQL (như sqlite3_bind_int, sqlite3_bind_text).

sqlite3_step()

Thực thi lệnh. Hàm này trả về - SQLITE_ROW: Thông báo rằng dữ liệu của 1 row sẵn sàng để đọc (dùng khi SELECT) - SQLITE_DONE: Thông báo câu lệnh đã hoàn thành tốt - SQLITE_BUSY: Database bị chiếm dụng bởi một tiến trình khác.

  • sqlite3_column_*(): Lấy dữ liệu ra (như sqlite3_column_int, sqlite3_column_text).
  • sqlite3_finalize(): Dọn dẹp câu lệnh.
  • sqlite3_close(): Đóng database.

II. Xử lí thông tin

  • sqlite3_errmsg(): Trả về câu thông báo lỗi
  • sqlite3_errcode(): Trả về mã lỗi (con số).
  • sqlite3_last_insert_rowid(): Trả về ID của dòng vừa mới chèn xong.

III. Quản lí bộ nhớ

  • sqlite3_free(): Giải phóng bộ nhớ do SQLite cấp phát (như lỗi trong sqlite3_exec).
  • sqlite3_malloc(): Cấp phát bộ nhớ theo chuẩn SQLite.

All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí