Sử dụng SQLite với C/C++

0
49

Cài đặt

Trước khi sử dụng SQLite trong các chương trình C/C++, bạn cần đảm bảo rằng đã có SQLite Library được cài đặt trên máy tính. Bạn có thể kiểm tra chương Cài đặt SQLite để biết tiến trình cài đặt, nếu cần.

C/C++ Interface APIs

Dưới đây là một số chương trình C&C++ / SQLite Interface đủ để đáp ứng yêu cầu của bạn khi làm việc với SQLite Database từ chương trình C/C++ của bạn. Nếu bạn muốn tìm một ứng dụng tinh vi hơn, bạn có thể tìm nó trong SQLite Documentation.

STT API & Miêu tả
1 sqlite3_open(const char *filename, sqlite3 **ppDb)Chương trình con này mở một kết nối tới một SQLite database file và trả về một đối tượng database connection để được sử dụng bởi các chương trình con SQLite khác

Nếu tham số filename là NULL hoặc ‘:memory:’, sqlite3_open() sẽ tạo một in-memory database trong RAM mà chỉ tồn tại trong suốt phiên đó.

Nếu filename không là NULL, sqlite3_open() cố gắng mở một database file bởi sử dụng giá trị của nó. Nếu không có file nào tồn tại với tên đó, hàm sqlite3_open() sẽ mở một database file mới bởi tên đó

2 sqlite3_exec(sqlite3*, const char *sql, sqlite_callback, void *data, char **errmsg)Chương trình con này cung cấp một cách thức nhanh và dễ dàng để thực thi các lệnh SQL được cung cấp bởi tham số sql mà có thể bao gồm nhiều hơn một lệnh SQL

Ở đây, tham số đầu tiên sqlite3 là đối tượng open database, sqlite_callback là một callback từ đó data là tham số đầu tiên và errmsg sẽ được trả về để bắt bất kỳ lỗi nào được tạo ra bởi chương trình con đó

Chương trình con sqlite3_exec() phân tích và thực thi mỗi lệnh đã cho trong tham số sql tới khi nó tiến tới phần cuối của chuỗi hoặc bắt gặp một lỗi

3 sqlite3_close(sqlite3*)Chương trình con này đóng một database connection đã được mở trước đó bởi lời gọi tới hàm sqlite3_open(). Tất cả các lệnh đã chuẩn bị mà được gắn kết với connection nên bị kết thúc trước khi đóng connection đó.

Nếu còn tồn tại bất kỳ truy vấn nào chưa được kết thúc, sqlite3_close() sẽ trả về SQLITE_BUSY với một thông báo lỗi là Unable to close due to unfinalized statements

Kết nối tới Database

Chương trình C sau minh họa cách kết nối tới Database đang tồn tại. Nếu Database đó không tồn tại, thì nó sẽ được tạo, và cuối cùng một đối tượng Database sẽ được trả về.

Bây giờ, biên dịch và chạy chương trình trên để tạo cơ sở dữ liệu test.db trong thư mục hiện tại. Bạn có thể thay đổi Path tùy theo yêu cầu của mình.

Nếu bạn đang sử dụng C++ source code, thì bạn có thể biên dịch chương trình này như sau:

Ở đây, chúng ra đang liên kết chương trình của chúng ta với SQLite3 Library để cung cấp các hàm cần thiết cho chương trình C. Việc này sẽ tạo một Database file là test.db trong thư mục và bạn sẽ có kết quả sau:

Tạo một bảng

Chương trình C sau sẽ được sử dụng để tạo một bảng trong Database đã được tạo trước đó.

Khi chương trình trên được biên dịch và thực thi, nó sẽ tạo bảng COMPANY trong test.db và sau đó liệt kê file như sau:

Hoạt động INSERT

Chương trình C sau minh họa cách chúng ta tạo các bản ghi trong bảng COMPANY đã tạo ở ví dụ trên:

Khi chương trình trên được biên dịch và thực thi, nó sẽ tạo các bản ghi đã cho trong bảng COMPANY và sẽ hiển thị hai dòng sau:

Hoạt động SELECT

Trước khi đi vào ví dụ thực sự để lấy các bản ghi, đầu tiên mình sẽ giới thiệu chi tiết cho bạn về hàm callback, sẽ được sử dụng trong các ví dụ. Hàm callback này cung cấp một cách thức để lấy các kết quả từ các lệnh SELECT. Nó có khai báo sau:

Nếu hàm callback trên được cung cấp trong chương trình con sqlite_exec() như là tham số thứ ba, SQLite sẽ gọi hàm callback này cho mỗi bản ghi được xử lý trong mỗi lệnh SELECT được thực thi bên trong tham số SQL.

Chương trình C sau minh họa cách chúng ta lấy và hiển thị các bản ghi từ bảng COMPANY được tạo trong ví dụ trên:

Khi chương trình trên được biên dịch và thực thi, kết quả là:

Hoạt động UPDATE

Chương trình C sau minh họa cách chúng ta sử dụng các lệnh UPDATE để cập nhật bất kỳ bản ghi nào và sau đó lấy và hiển thị các bản ghi đã được cập nhật từ bảng COMPANY:

Khi chương trình trên được biên dịch và thực thi, kết quả là:

Hoạt động DELETE

Chương trình C sau minh họa cách chúng ta sử dụng các lệnh DELETE để xóa bất kỳ bản ghi nào và sau đó lấy và hiển thị các bản ghi còn lại từ bảng COMPANY:

Khi chương trình trên được biên dịch và thực thi, kết quả là:

 http://vietjack.com/sqlite/su_dung_sqlite_voic_c++.jsp

Gửi phản hồi

Website này sử dụng Akismet để hạn chế spam. Tìm hiểu bình luận của bạn được duyệt như thế nào.