- ベストアンサー
VC++でFreeBSDサーバーのPostgresqlデータを表示・更新する方法とは?
- Windows Vista Ultimate SP2環境でMicrosoft Visual Studio 2010とMicrosoft Visual C++ 2010 Expressを利用して、VC++でFreeBSDサーバーで稼動しているPostgresql8.4のデータを表示・更新する方法について教えてください。
- 現在はPHP5を利用してデータの表示・更新を行っていましたが、VC++での実装を検討しています。
- 初級シスアドの知識とAccessでのADO、PHP、FreeBSDでのサーバー構築、Postgresqlの操作がある程度できる状況です。参考になるURLや必要なコードのサンプルなど、ご教示いただければ幸いです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
参考にしている URL のコードは MFC によるもので、Express Edition では MFC は利用できません。 自分が考えるに、解決策は以下の3通りあると思います。 (1)Win32 APIでウィンドウを作成する 幸いなことに Express Edition でも Windows SDK がインストールされるので、それにより利用可能な Win32 API を使ってウィンドウを作成し、関数をメンバ関数から普通の関数に変更してイベント処理部分で呼び出す方法です。MessageBox() の引数の個数が違いますが、それは簡単に解決できると思います。 以下の URL が参考になりますが、サイト内で言及している「リソースエディタ」がないのでその部分は別の方法を考える必要があります。 http://homepage2.nifty.com/c_lang/ また、学習すべき内容が膨大なため、すぐに動くものがほしい場合には向きません。しかし、ネイティブコードが必要で他のライブラリを使用できないのであればこの手か VisualStudio の Standard edition 以上を購入するしかありません。 (2)他の GUI ライブラリでウィンドウを作成する GTK+ などの GUI ライブラリを導入してウィンドウを作成し、関数を何かのクラスのメンバ関数からイベントハンドラ関数に変更するという方法です。GTK+ については以下の URL と本が参考になります。 http://www.gtk.org/index.php http://library.gnome.org/devel/gtk-tutorial/stable/ http://www.amazon.co.jp/%E5%85%A5%E9%96%80GTK-%E8%8F%85%E8%B0%B7%E4%BF%9D%E4%B9%8B/dp/4274067769 学習すべき内容が膨大なため、すぐに動くものがほしい場合には向かないという点では上と同じですが、GTK+ に関していえば上よりも楽です。ネイティブコードが必要ならば有力な選択肢のひとつです。 (3).NET Framework でウィンドウを作成し、PostgreSQL への接続ライヴラリを別なものにする たぶん質問者が現在ウィンドウを作成しているのは .NET Framework ですが、現在の PostgreSQL への接続ライヴラリはアンマネージドなため、マネージドコードへの変換が必要になってきます。検索してみたところ、以下の .NET Framework 用ライブラリが PostgreSQL 公式サイトから提供されています。 http://npgsql.projects.postgresql.org/ ネイテブコードが必要であるのでなければ、例示した中ではこれを利用するのが一番早いと思います。もっとも、C# を使ったほうがもっと早いと思いますが。
その他の回答 (1)
- koi1234
- ベストアンサー率53% (1866/3459)
Postgresqlとか使ったことがないのでそのつもりで (環境もVC6しかありません) 書かれてるURLに書いてあるコードは Dialogベースでアプリケーションを作成し そこに ボタンコントロールを配置 そのボタン押された時のクリックイベント内でのコードのように見受けられます (というかそう書いてありました) データを表示 するのであれば タイマーイベントを作成して そこでデータ読み見込み表示する方法が簡単ではないかとおもいます メインDialogのOnInitialイベントでタイマーを初期化すれば 設定した周期でTIMERイベントが発生します 更新に関してはオペレータ入力などの操作手順などがあるとおもいますので なんとも サンプルとしては以下のようなものがあるようです(↑はMFC使用) http://msdn.microsoft.com/ja-jp/library/ee837238.aspx ちゃんと見てないですが MFCのサンプル内に Buttoon と Timer という項目は 存在しているようです ちなみに(VC6では) Buttonコントロール配置 そのコントロールダブルクリックで ボタンクリックイベント のコード作成が行えます TIMERイベントの追加はクラスウイザードを起動して メッセージ飛ばしたい(処理したいクラス選択して)Dialog選んで メッセージで WM_TIMER を選択することでコード作成画面にいけます Timerの初期化はイベント追加と同じように WM_INITDIALOG を選択すれば出来ます 環境違うので参考になるかわかりませんが
お礼
イベントの動作がなんとなくですが理解できたように思います。 まだまだ勉強が足りないようです。これからもよろしくお願いいたします。
お礼
Npgsqlの件、参考になりました。 ちょっと、 > もっとも、C#を使ったほうがもっと早いと思いますが。 という部分の意味がうまく理解できていませんので、 別質問でスレッドを建てさせていただきます。 ありがとうございました。