私はCライブラリを使用してPostgreSQLデータベースに接続して使用するつもりですが、ODBCとLibpqの長所と短所は何ですか?私が知ることから、libpqの方が速いようですが、明確な答えやベンチマークは得られませんでした。ODBC v Libpq:PostgreSQLのCライブラリ
さらに、ODBC/Libpqより優れたライブラリがあります。
私はCライブラリを使用してPostgreSQLデータベースに接続して使用するつもりですが、ODBCとLibpqの長所と短所は何ですか?私が知ることから、libpqの方が速いようですが、明確な答えやベンチマークは得られませんでした。ODBC v Libpq:PostgreSQLのCライブラリ
さらに、ODBC/Libpqより優れたライブラリがあります。
ODBCは、異なるデータベースに対して同様のAPIを使用する標準のアダプタを使用する場合に便利です。私は個人的にはひどいAPIだと思っていますが、広く理解されており、十分に文書化されています。
libpqはPostgreSQLに直接話しています。より良いパフォーマンスを得ることはできますが、クライアントライブラリではなく、クエリ実行やネットワーク遅延などに時間を費やすほとんどのアプリケーションではそれほどの違いはありません。
新しいバージョンのpsqlODBCはlibpq上にビルドされ、libpqのODBCラッパーとして機能します。
libdbiもあります。これは、ODBCよりもあまり重大ではないAPIを提供します。
完全性のために、Cで書かれPostgreSQLサーバにロードされたユーザ定義関数によって使用できるサーババックエンドSPIもあります。サーバーの拡張機能や機能の外部では役に立ちません。
ああ、ecpgがあります。 ecpgは使用しないでください。主に特定の他のデータベースエンジンからの移植を容易にするために存在する、超レガシーの言語統合SQLツールです。 ecpgは使用しないでください。本当に。
C++の場合、QtSQLインターフェイス(Qtには異常ですが、ひどく辛い制限があり、使用しないでください)とlibpq ++(大丈夫ですが、ほとんど維持されません)があります。
私は個人的にlibpqコードを直接書くが、それは通常PostgreSQL自体に入っているコードに取り組んでいるからだ。 PostgreSQL以外のものをターゲットにしたくないと想像できない場合は、libpqコードを書いておきたいかもしれません。それ以外の場合は、おそらくpsqlODBCでODBCを使用します。
ODBCはほとんどMS Windowsデータベースアクセスインターフェイスです。 Libpqは、PostgreSQLのネイティブなクライアントインタフェースです。汎用インターフェースが必要ない場合は、ODBCを使用しないでください。それは、高複雑さの古い学校の不親切なデザインの図書館です。 libpqには何の利点もありません。
libpqが動作しますが、ODBCは動作しません。 –