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. Node.jsデータベースの抽象レイヤー
- 2. iphoneとデータベースの間の抽象レイヤー
- 3. AIRのデータベース抽象化レイヤー? (AS3)
- 4. Pythonの実行可能なデータベース抽象レイヤーは何ですか
- 5. ファイルシステムの抽象レイヤーとJavaのjar/zip
- 6. C#GUIとデリゲートを抽象レイヤーとして使用する
- 7. Visual Studio 2008の抽象メソッドのXMLコメント
- 8. C#の抽象クラスとメソッド
- 9. C++の抽象基本クラステンプレート
- 10. Spring 3サービス抽象クラスの質問を持つDaoレイヤー
- 11. C#抽象汎用メソッド
- 12. インタフェース対抽象クラスC++
- 13. 抽象クラス/メソッド、C# - > VB.NET
- 14. 抽象クラス対抽象クラス
- 15. Java抽象クラス、抽象コンストラクタ
- 16. データベース抽象化 - オプションは何ですか?
- 17. C#/ VB.netのデータベースエンティティとオブジェクトの抽象化
- 18. c#抽象基本クラスのプロパティ
- 19. C++未定義抽象クラスのコンストラクタ
- 20. write c#抽象クラスのインライン実装?
- 21. C#deserialize未定義の抽象クラス
- 22. C++抽象型の初期化
- 23. 抽象クラスでのC++と継承
- 24. C++での抽象/具象グラフの実装について
- 25. 畳み込まれた大規模なSQLデータベース上で明確な抽象レイヤーを作成
- 26. DynamoDbとAzureテーブルの抽象レイヤーに問題がありますか?
- 27. C++メタプログラミング:*必須*抽象クラスを継承
- 28. C++ベクトル抽象クラスを反復する
- 29. 部分メソッド内抽象クラス(C#)
- 30. C#インターフェイス/抽象クラス(動的型)