BDE+Access2000形式でのエラー


ラーク  2007-09-13 11:23:45  No: 27751  IP: 192.*.*.*

お世話になります。

現在、既存のデータベースソフトで、BDE+Access97をNativeで接続し、
使用しているものがあるんですが、ごく稀に「IDDA3532.DLL」の
アクセス違反が発生するケースがあり困っています。

調べてみたところ、テーブルをオープン中にFilterプロパティを
更新した時に内部的にハンドルが解放されてしまっている可能性が
高いというところまでは突き止めました。エラーが発生する処理の
寸前でデータベースの開き直しを行うとアクセス違反は発生しなく
なります。

ただ、根本的な解決方法が見つからないため、またどこで再発するか
わからないような状況です。
何か情報をお持ちでしたら、ご教授いただきたいと思います。
すいませんが、宜しくお願いします。

編集 削除
HOta  2007-09-13 13:43:46  No: 27752  IP: 192.*.*.*

テーブルのActiveを調べたらどうでしょう。

編集 削除
ラーク  2007-09-13 14:04:21  No: 27753  IP: 192.*.*.*

テーブルのActiveはTrueになっており、問題は無いように見えました。
なお、実質のエラーはFilter設定直後にLocateを行っており、Locate
で発生していました。

編集 削除
Syake  2007-09-13 14:48:18  No: 27754  IP: 192.*.*.*

FilterやLocateは使ったこと無いので良くわからんですが
ちなみにLocateって検索結果でレコードが複数あったら
どうなるんじゃろう?等と考えました。
愚返信でした・・・。

編集 削除
HOta  2007-09-13 18:10:44  No: 27755  IP: 192.*.*.*

私もFilterは使ったことがないのです。TQueryのSQL文で絞るのはだめでしょうか?BDEは、もうサポートされていないのですが、5.2まではあるようです。

編集 削除
Mr.XRAY  URL  2007-09-13 22:33:55  No: 27756  IP: 192.*.*.*

私もFilterは使ったことがないのですが、
Accessのmdbデータベースを扱うのであれば、TADOConnectionとTADOQueryという選択もいいかも知れません。

編集 削除