Syndication
Search


クリエイティブ・コモンズ・ライセンス

Movable Type 2.661
Amazon Search

DAOSDKのDAO3.6対応

何年も前から客先に納入しているプログラムで、先日客先から「WindowsXP(SP2)で動かないよ」とのお叱りを受け、調べてみたら、該当プログラムが対応しているDAOのバージョンが古すぎるためでした。
WindowsXPでは(Windows2000でも)、標準でDAO3.6(+Jet4.0)が入っているのですが、該当プログラムは何年も前に作った物なのでDAO3.5にしか対応していなく、それが動作しない原因らしく、DAO3.6に対応する事になりました。

いまどきDAOですか?という感じだけど、いちおうφ(..)メモメモ。

■ MFC DAO クラスの場合 ■
CDaoXxxxxxという、MFC DAOクラスを使っている場合の修正は簡単で、「共有DLLでMFCを利用」なプロジェクトなら、
AfxGetModuleState()->m_dwVersion = 0x0601;
とするだけでOKらしい。

「MFCのスタティックライブラリを使用」の場合は、ちょっと面倒で、MFCのソースを書き換えないといけないらしい。

これは、VisualC++6.0(SP3以降が必要)の話なので、最近の.NETなら、何もしなくても再コンパイルすれば動くかなぁ、と推測。

"らしい"が多いけど、この辺の情報はググればすぐに見つかるので問題ないでしょう。

■ DAO SDK クラスの場合 ■
上の、MFC DAO クラスの話が"らしい"ばかりなのは、該当プログラムは非MFCアプリで、MFCが嫌い&書けない私は、DAO SDKクラスを使ってるからです(^_^;)

それ以外にもDAO SDKクラスは、MFC DAOクラスに比べて、

  • スレッドセーフティで、マルチスレッド環境で使える。
  • GetRows()/GetRowEx()で、一括取り出しが出来るので、かなり高速。
  • そして、MFCが不要!(^_^;)
などの特徴があります。

DAO SDKクラスを使って、DAO3.6に対応させるのも(解ってしまえば)簡単です。

  1. まず、DAO3.6に対応した、DAO SDKのソースを取得します。
    場所は、VisualC++6.0のSP3以降サービスパックの、Supportディレクトリです。
  2. ソースをビルドして、DAO3.6対応なDAO SDKクラスDLLを作成します。
    先ほどのディレクトリに、dbdao.dswがあるので、それを開いてビルドします。
    [ビルド]メニューの[バッチ ビルド]をクリックすると、複数のDLLを同時に構築できます。
  3. あとはDAO3.5の時と同じように、DAO3.6対応DAO SDKのライブラリをリンクして終わり。
すごく簡単♪。
なのに、ググってもほとんど情報を見つけられず苦労しました…。
上の情報は、VisualStudio6.0サービスパックのリリースノート中の記述を元にしてます。ちゃんとリリースノートは読みましょうね。

Similarity Search
Trackback
このエントリにTrackBackするには、以下のURLにTrackBack pingを送ってください。
※:スパム対策しています。予想外のエラーが発生した場合は、コメント欄でご報告いただけると嬉しいです。

Trackback URL is >>
Comments
Post a comment
このエントリに対してコメントを追加するには、以下フォームに記入して [追加]ボタンを押下してください。
  • 必須な項目は"コメント"のみです
  • 名前等は匿名でかまいません
  • E-Mail/URLを記入した場合は公開されます
  • HTMLタグは使用できません(実体参照に変換されます)
  • コメント内のURLは自動的にリンクが張られます
  • スパム対策のため、ひらがなの含まないコメントを書くことは出来ません
  • HTTP Cookieを利用して、名前やE-Mail/URLの情報を記録させることが出来ます
名前/E-Mail/URLを記録しますか?