2009-09-17 45 views
20

Tôi đã tạo cơ sở dữ liệu thông qua sqlite bằng C++.Lưu vào đĩa cơ sở dữ liệu trong bộ nhớ

db đã được tạo trong bộ nhớ (bằng cách sử dụng tham số ": memory:" được đặt tên của tên tệp), để có hành vi rất nhanh.

Cơ sở dữ liệu được tạo ra bởi những dòng sau:

sqlite3* mem_database; 
if((SQLITE_OK == sqlite3_open(":memory:", &mem_database)){ 
    // The db has been correctly created and 
    // I can do some stuff with it. 
} 
sqlite3_close(mem_database); 

Vấn đề của tôi là: làm thế nào tôi có thể viết cơ sở dữ liệu trong bộ nhớ vào đĩa? (thông qua c/C++ tất nhiên).

Tôi đã đọc một số điều về các lệnh sqlite ATTACH và DETACH, nhưng tôi có thể làm cho chúng hoạt động chỉ với shell tương tác sqlite (không phải từ mã c/C++).

Greets.

Trả lời

19
+0

Tuyệt vời! Điều này làm việc hoàn hảo: D – Giancarlo

+0

Tôi đang tìm tài liệu C# cho cùng một mục đích. hãy chia sẻ nếu bạn biết. –

+0

@Mubashar: Tôi không quen với C#. Tôi tin rằng thật dễ dàng để chuyển đổi ví dụ trong C#. Các hàm 'sqlite3_backup_X' thực hiện công việc. –

2

Sử dụng câu lệnh giao dịch trước khi thực hiện bất kỳ điều gì cho bảng. Điều này đảm bảo xử lý nhanh chóng và rollbacks là tốt. Bằng cách này, bạn không cần thực hiện trực tiếp cơ sở dữ liệu trong bộ nhớ.

Các vấn đề liên quan