C++から異なるデータベースにアクセスするためのオプションはありますか? 別の言い方をすると、ADOにはどのような選択肢がありますか? 賛否両論は何ですか?(Visual)C++のデータベース抽象レイヤー
答えて
- Microsoft ODBC。
- CDatabaseのようなMFC ODBCクラス。
- OleDB(via COM)。
- そして、あなたは常にごとのRDBMSネイティブライブラリ(例えば、SQL Server native library)
- DAO(ない)を介して行くことができます。
- サードパーティのORMプロバイダ。
デフォルトでは、ODBCまたはOleDBを使用することをお勧めします。ネイティブライブラリは実際にあなたを制限し、DAOは楽しいものではなく、C++/Windows用の素晴らしいサードパーティのORMはたくさんありません。
スピードが重要で、コードを移植する必要がない場合は、ネイティブライブラリを使用する価値があります。
SQL Serverについてよくわかりませんが、Oracle OCIの呼び出しがODBCを使用するよりも高速であることはわかります。しかし、彼らはあなたをOracleのSQLのバージョンに結びつけています。 SQL Serverが同じ方法であることは理にかなっています。
ODBC、MySQL、SQLiteをサポートするPOCO Dataライブラリがあります。無料オープンソースPOCO C++ Librariesの一部です。
この質問とその回答は数年前ですが、私のような評価旅行でクルーズする人にとっては、まだ価値があります。このため、Qt C++フレームワークのQtSql
モジュールをデータベース接続のオプションとして追加したいと考えています。
私は一般的にQtに精通していますが、特にQtSql
の経験はありません。
(QtをQtSqlモジュールに選んだだけの場合は、これも適用する必要があります) Qtはクロスプラットフォームです。私の経験上、Qtはうまく設計されており、使用するのにかなり直感的で、非常によく文書化されています。それは長い間存在しており、活発なコミュニティによって維持され、ノキアに裏打ちされているため、夜間は利用できなくなります。 2009年以降、QtはLGPLのライセンスを受けているため、商用アプリケーションであっても実質的な無償オプションです。
短所: Qtは小さくありません。プロジェクトにQString
などの新しいタイプを導入します。 QtはLGPLの下でライセンスされているので、商用アプリケーションでもその使用を認める必要があります。
- 1. デザインパターン:C++抽象レイヤー
- 2. Node.jsデータベースの抽象レイヤー
- 3. iphoneとデータベースの間の抽象レイヤー
- 4. AIRのデータベース抽象化レイヤー? (AS3)
- 5. Pythonの実行可能なデータベース抽象レイヤーは何ですか
- 6. ARC C++抽象レイヤーを介したObjective-C委譲
- 7. ファイルシステムの抽象レイヤーとJavaのjar/zip
- 8. データベースの抽象度
- 9. C#GUIとデリゲートを抽象レイヤーとして使用する
- 10. C#抽象クラスInstanitiation
- 11. C++抽象/具象クラスの宣言
- 12. Visual Studio 2008の抽象メソッドのXMLコメント
- 13. C++の抽象基本クラステンプレート
- 14. C#の抽象クラスとメソッド
- 15. Spring 3サービス抽象クラスの質問を持つDaoレイヤー
- 16. API抽象化レイヤー - APIインターフェイスの混合を避ける
- 17. 抽象メソッドとクラスC#
- 18. C#抽象形検出
- 19. 抽象クラス/メソッド、C# - > VB.NET
- 20. インタフェース対抽象クラスC++
- 21. C++抽象型宣言
- 22. C#抽象汎用メソッド
- 23. 抽象クラス対抽象クラス
- 24. Java抽象クラス、抽象コンストラクタ
- 25. 抽象クラスと抽象メソッド
- 26. 抽象クラスの抽象リストのアンマーシャリング
- 27. データベース抽象化 - オプションは何ですか?
- 28. java抽象メソッドの抽象クラス
- 29. C#/ VB.netのデータベースエンティティとオブジェクトの抽象化
- 30. C++抽象型の初期化