VB6 ADO EXECUTEで固まる

解決


m  2006-02-27 20:39:48  No: 94375

VB6

ADOのEXECUTEで複雑なまたは大量のデータをSQL文で抽出する場合に、
処理が止まってしまい、フォームが応答無しの状態になったりします。
これがいやなので、ADOでループでまわしてやってるのですが、非常に時間が
掛かってしまい、また面倒です。
なのでSQL文でやりたいのですが、実行中です。のようなメッセージをだしておきたいのです。
これはどうにもならないのでしょうか?

作っていて気になったのですが、MSDEのことで、どこかのサイトで書かれていたのですが、MSDEをWindowsXPHome/Proにインストールして、サーバーとして運用することはだめなのでしょうか?


あん  2006-02-27 22:43:18  No: 94376

別にSQL文を実行するプログラムを作って
結果をファイルとかに出力させる。

そのプログラムを実行して終了したかどうかだけ
タイマー監視とかでチェックして終了してたら
ファイルを読み込んで結果を表示させる。

VB6.0だとこれが一番簡単かな。


もげ  2006-02-27 22:48:55  No: 94377

2つ目のほうだけ。

http://www.microsoft.com/japan/sql/msde/howtobuy/msderights.mspx
http://www.microsoft.com/japan/sql/prodinfo/previousversions/license/license_qanda.mspx

http://sakaguch.com/PastBBS/0034/B0017363.html
ライセンスに関しての疑問はライセンス元(マイクロソフト社)に確認をとったほうが確実でしょう。

MSDEに関しては、ダメとはいいませんが、
・便利ツール(EnterpriseManager、クエリアナライザ等)が無い
・2GBまでのサイズ制限
・5ユーザまでに最適化されているとアナウンスされてる
ということで、
運用(バックアップ、リカバリ、ログの切捨て...)上、
便利ツール相当分を自作するほうが人件費の無駄で余計な手間かもしれないので
運用まで考えるならSQLServerがあるに越したことはないです。

OSに関しては、XPProで10ユーザ、Homeで5ユーザの接続制限があります。
WindowsServer2003等のサーバOS+MSDEという選択もありますね。


魔界の仮面弁士  2006-02-27 23:04:36  No: 94378

Executeメソッド実行時に、adAsyncExecute オプションを指定しておき、
処理の終了を、ExecuteComplete イベントで受け取るようにするとか。

> どこかのサイトで書かれていたのですが
どこでしょう?

> MSDEをWindowsXPHome/Proにインストールして、サーバーとして
> 運用することはだめなのでしょうか?
Workstation OSの接続上限数、EULA上の表記など、細かい話が絡むので、
ライセンスの質問は、Microsoft に直接問い合わせていただくとして。

MSDE2000 Rel.A の事であれば、セキュリティ面の事情から、既定の
インストール状態では、ネットワーク経由の外部接続が無効な状態に
なっています。ただ、OS側の(ライセンス的な)制限によって、他のPCから
接続させるような運用が許可されていない、と見ておいた方が良いでしょう。
(もちろん、スタンドアロンでの運用ならば問題ありません)


m  2006-02-28 00:23:33  No: 94379

>Executeメソッド実行時に、adAsyncExecute オプションを指定しておき、
>処理の終了を、ExecuteComplete イベントで受け取るようにするとか。
この方法で実現できました。ありがとうございました。

MSDEについてはなにかあやふやな感じがしますが・・・


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加