初めて書き込みさせて頂きます
どうか皆さんのお力を貸してください <m(__)m>
今あるシステムをMySqlとVBを使って作ってるんですけど
MySqlからMyODBCを通してADOに接続は出来ましたけど
そこからDataGridに接続したら実行時に約8秒待たされてしまいました
その後絞り込み処理とかをしても同じように待たされてしまいます
これはADOをDAOに変更しても一緒でした(Gridを別のものにしても一緒でした)
どなたかアドバイス貰えないでしょうか
今非常に困ってます
よろしくお願いします <m(__)m>
PS:今の環境です
OS:WindowsXP
VB:VisualBasicV6.0 SP6
MySql Ver4.0.18
MyODBC Ver3.52.06
Microsoft ADO Data Control 6.0(SP6)
Microsoft DataGrid Control 6.0(SP6)
因みに、取得されたデータ件数やレコード内のフィールド数は
どの程度あるのでしょか?
また、レコードセットのみの取得(グリッドに表示させない)
でも同様の時間がかかりますか?
取得件数が多い場合、DataGridに表示するのに時間がかかると
言うのが一般的です。その場合は、データの取得からDataGrid
への連結が終了するまで、Visible=Flase にして、非表示にす
ることで高速化が望めます。
ですが取得件数が多い場合、件数に比例して遅くなります。
その場合は件数を少なくする方法が必要です。
ご検討下さい。
以上。
おおお さっそくの返事ありがとうございます 感激してます
さて質問の内容ですが
>因みに、取得されたデータ件数やレコード内のフィールド数は
>どの程度あるのでしょか?
今テスト段階ですのでフィールド数は6件 データも6件です
>また、レコードセットのみの取得(グリッドに表示させない)
>でも同様の時間がかかりますか?
今調べたところRefreshメソッドを実行した時点で8秒止まってしまいますね
その後はレコードセットでデーターはすぐに出てきます
>取得件数が多い場合、DataGridに表示するのに時間がかかると
>言うのが一般的です。その場合は、データの取得からDataGrid
>への連結が終了するまで、Visible=Flase にして、非表示にす
>ることで高速化が望めます。
非表示にしても変わらなかったです
>ですが取得件数が多い場合、件数に比例して遅くなります。
>その場合は件数を少なくする方法が必要です。
>ご検討下さい。
追伸
データーグリッド以外でも(テキストボックスとか)固まってしまいます
で、関連づけてるときはVBのプログラム終了ボタンを押してもフリーズしてしまいます
他に原因があるのでしょうかね(VB意外に)
今知り合いからS−JISはフィールド名に使わない方がいいって言われたのでフィールド名から日本語を消してやってみます
でわでわ
フィールド名を全部英語にしてもダメでした
で、今からmy.iniの設定をやってなかったので 設定してみます
何か気づいたらまたアドバイスお願いします <m(__)m>
でわでわ
テストしてみました・・・
8フィールドのテーブルで、総件数が1000レコードあるところ
からの検索で、250件ほどヒットする条件設定を実行したところ
画面の表示を含め約1秒です。
マシンの性能もあるとは思いますが・・・
インデックスの設定等でかなり変化すると思いますので、検索
の為の条件やテーブルのインデックスの設計を見直された方が
よいと思います。
テスト環境は・・・
WinXP Pro SP1
メモリ 1 GB
MySQL 4.0.16
MyODBC 3.51
VB.NET 2003 + .NET Framework 1.1
タスクマネージャで確認したところ、MySQL には、約8MBのメモリ
が食われていました。
参考までに・・・
以上。
ご返事ありがとうございます
わざわざテストしてくれたんですね
家との環境の違いがあり
家は
WindowsXP Home Edition
Visual Basic 6.0
なんですね
今からこの違いを埋めてテストしてみようと思います
ほんといろいろご迷惑かけてすみませんでした 感謝感謝です
結果報告を直接メールで報告させて貰います
それでは失礼します