2012-01-09 41 views
7

Tôi muốn viết một ứng dụng có thể kết nối với nhiều cơ sở dữ liệu (điều này sẽ được cấu hình bởi các tham số khi khởi động). Ứng dụng sẽ có các truy vấn khác nhau cho mỗi cơ sở dữ liệu, đây không phải là vấn đề.Các lựa chọn thay thế cho thư viện đa dữ liệu cho C/C++ là gì?

Vấn đề là tôi muốn có thể kết nối với các công cụ cơ sở dữ liệu khác nhau. Java có JDBC, Perl có DBI. C++ có gì?

Tôi còn không muốn sử dụng trình điều khiển cơ sở dữ liệu với giấy phép quá nghiêm ngặt (các giấy phép thương mại). GPL có thể - nhưng tôi muốn tránh điều đó.

+0

Có thể bị đóng cửa do từ khóa "tốt nhất". Hãy xem nó là một wiki cộng đồng. –

+0

Cảm ơn nhận xét, tôi đã thay đổi câu hỏi. –

+0

SOCI http://soci.sourceforge.net/ - kết thúc cuộc thảo luận. –

Trả lời

1

Hầu như mọi công cụ cơ sở dữ liệu tồn tại đều cung cấp giao diện ODBC. Tôi nghĩ JDBC thực sự là một bản sao của ODBC.

Những gì bạn muốn, sau đó, là một C++ wrapper cho ODBC API, mà thực hiện RAII để đảm bảo rằng các nguồn lực cơ sở dữ liệu được phát hành trong trường hợp ngoại lệ, vv Ví dụ: http://simpledb.sourceforge.net/

0

Có các kết nối OLE cũ hơn. Sử dụng OLE, bạn có thể kết nối với một Tệp Phẳng, Oracle, SQL hoặc cơ sở dữ liệu MySql với điều kiện bạn đã cài đặt đúng trình điều khiển.

0

ODBC tương thích nhất và cấp thấp nhất. OLE DB là cấp cao hơn và dễ dàng hơn để làm việc với, vì vậy nếu bạn tìm thấy nhà cung cấp OLE DB cho tất cả các hệ thống DB có thể của bạn, đó là con đường để đi. Nếu không, ODBC là lựa chọn của bạn vì hầu như tất cả các hệ thống DB đều hỗ trợ nó.

EDIT: Xem liên kết này: http://blogs.msdn.com/b/sqlnativeclient/archive/2011/08/29/microsoft-is-aligning-with-odbc-for-native-relational-data-access.aspx Điều này làm cho ODBC trở thành lựa chọn duy nhất phù hợp. :)

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