2011-12-30 14 views
2

私は、MySQLデータベースとのインタフェースが必要なアプリケーションを作成しています。 libmysqlまたはODBCコネクタを使用する必要がありますか? ODBCを使用することで、将来的に多くのコード変更をせずにDBを変更できるという事実の他に、賛否両論はありますか?Cアプリケーションlibmysqlclient対ODBC

答えて

1

私はいつも自分のDBを変更していますが、コードチェンジが無制限で完璧に動作するCコネクタを使用しています。それは私のためのより良い選択であり、おそらくあなたのためのものです(もちろん私だけです)。

MySQLを使いこなす場合、コード変更が2つのインターフェイス間で大きく異なるとは思えません。

EDIT:私は直感的で自然なので、元々Cコネクタを選択しました。私はLinux用に機能し、強化されたODBCがあるとは確信していなかったので、私のコードはWindowsとLinuxの両方で動作しなければなりません。今私は確かにそのようなことがあることがわかります。これはODBCをより魅力的にします。もし私がそれについて知っていたら、私は多分選択したでしょう。

+1

+1実際にそれを使用した人から聞くのは常にいいです。 – nc3b

1

私の意見では、それは個人的な好みの問題です。

libmysqlを使用する場合は、まず、汎用のlibmysqlclientラッパー関数(レイヤーA)を作成し、プログラムで使用するデータベース機能を実装する一連の関数レイヤーB)、それ以上は実際のプログラム(レイヤーC)です。

libmysqlからODBCに切り替えるには、B層のAPIを変更せずにB層を少し変更するだけです。したがって、MySQLだけでプログラムを使用するつもりなら、誰かがあなたにODBC用のパッチを提供するまで、libmysqlを使うことをお勧めします。


技術面では、データベース接続と移植性の間にトレードオフが必要です。 libmysqlを使用すると、Unix、MacOS、Windowsなどのさまざまなプラットフォームでコードを変更することなくコンパイルできます。 ODBCライブラリは、通常、Windows用またはUnix/MacOS用に書かれています。

+1

Wikipediaによると、ODBCはWindowsオペレーティングシステムの不可欠な部分です。 WTF? – Philip

+0

+1確かなアドバイス、ありがとうございます。 – nc3b

+0

@Philipだから、ポータブルにするためには、ODBCやlibmysqlを使うべきですか? – Pacerier

関連する問題