Recordsetを使ったプログラムでDBを移動させるとアクセスできなくなる

[戻る]
ゆんた 2007/10/15(月) 21:08:26
始めましてこんにちは。

VC++6.0のMFCでAccessのデータベースを利用したプログラムを作っています。
Recordsetを使おうと思うのですが表題の様な問題が起こります。

クラスウィザードからMFCODBCコンシューマのクラスを作る。
データソースをMS Access Databaseとする。
データベースの選択ダイアログでC直下のgakusekikanri.mdbを選択する。
テーブルを選びクラスを生成する。
DBをオープンし、要素を取り出す。
ここまでは出来ました。

ここでgakusekikanri.mdbをC:\Program Filesに移動させた所、アクセスできなくなりま
した。

プログラム上でデータベースファイルのパスをC:\Program Filesに変更出来れば解決でき
ると思うのですが、パスを変更する方法が分かりません。

開発環境
VC++2005 MFC Access
Recordsetを使ったプログラム(ODBC)

分かる方いらっしゃいましたらご指導お願いします。

ゆんた 2007/10/15(月) 21:12:55
すみません。
開発環境について補足&修正です。

VC++6.0 MFC Access
Recordsetを使ったプログラム(ODBC)
OSはwindowXPです。

失礼しました。

たいちう 2007/10/16(火) 09:27:23
データベースファイルのパスを管理しているのはプログラムではなくてOSです。
コントロールパネルの管理ツールのデータソース(ODBC)で正しい設定にすれば、
プログラムは変更しなくてもつながるはずです。

データベースファイルがどこにあるか、DBの種類は何かなどを、
プログラムが気にしなくても良いという仕組みなのです。

プログラムでODBCの設定をする方法もあるようですが、
私ならば、そんな設定をするよりもADOを使います。

http://msdn2.microsoft.com/ja-jp/library/ck4z6wwt(VS.80).aspx

ゆんた 2007/10/24(水) 23:23:08
[[解決]]
遅くなって申し訳ありません。
解決しました。

そもそもODBSの理念から逸脱している為あまり良い方法ではないと思うのですがレコード
セット派生クラスのGetDefaultConnectのreturn _T()内を書き換える事によ成功しまし
た!!

たいちうさん、アドバイス有難う御座いました。

古いスレッドには追加発言できません。