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