■40800 / inTopicNo.4) |
Re[3]: VBからAccess.mdb接続 排他モード時処理 |
□投稿者/ 魔界の仮面弁士 (1265回)-(2009/09/03(Thu) 14:08:09)
|
■No40798 (hs さん) に返信
>> mdb は、64bit アプリから利用できないという制限もありますので、
> このことは全く知りませんでした。大変重要な情報ありがとうございます。
MDB の場合、JET 接続用のドライバ(ODBC, DAO, OLEDB Provider等)が
現在のところ 16bit 版と 32 bit版しか存在していないため、
64 bitアプリからは呼び出す事ができないのです。
>>'一定時間待機
>>System.Threading.Thread.Sleep(500)
>>フォームを持つメインスレッドからは、Sleep を呼び出さないようにしてください。
> 別スレッドで行うようにします。
あるいは Timer を使い、0.5秒間隔ごとの Tick イベントで再接続を試みるという手も。
> ところで、mdbは64bitアプリでは利用できなとの事ですが、恥ずかしながら、何bitという規格?というものを今まで全く意識したことがありませんでした。
64bit 版の Windows 上では、32bit アプリと 64bit アプリが動作します。16bit アプリは動作しません。
32bit 版の Windows 上では、32bit アプリと 16bit アプリが動作します。64bit アプリは動作しません。
Windows のパッケージやバージョン情報に、「X64 Edition」「for Itanium-based Systems」「IA64」などの
表記があれば、それらは 64bit 版の Windows という事になります。
それ以外のものについては、基本的には 32 bit 版と思って良いでしょう(x86 版と書かれている場合もあります)。
今後登場する事になる Windows(特に Windows Server 製品)では、
32bit 版は登場せず、64bit 版のみになるとされています。
まだまだ 32bit 環境の方が優勢ですが、移行の準備は進めておいた方が良いでしょう。
(なお Windows 7 は、32bit 版も 64 bit版もリリースされます)
> 作成しているアプリのBitを確認するにはどうすればよいのか教えていただけると幸いです。
VS2008 の開発環境で、画面上部の [Debug]/[Release] というボックスの隣に、
[Any CPU] というボックスがあるかと思います。
これは、動作プラットフォームを指定する物で、[Any CPU] とは、
64bit Windows では 64bit アプリとして動作し、
32bit Windows では 32bit アプリとして動作するというものです。
ここを [X64] または [Itanium] にすると、64bit 専用アプリとなります。
(32bit OS 上では動作しません。64 bit 環境でのみ動作します。)
[x86] に設定した場合には、32bit で動作するアプリとなります。
(64bit 環境では、32bit をエミュレートした "WOW64" というモードでの動作となります。)
http://msdn.microsoft.com/ja-jp/events/dd282855.aspx
|
|