この記事では、ACCESS における ASP ファジー クエリのメモリ オーバーフローの解決策を主に紹介します。この問題の原因は、トランスコーディング機能を使用して解決することです。
本日、Web サイトの日常メンテナンスを行っていたところ、Web サイトのメッセージ プログラムが厳密な検証とフィルタリングを受けておらず、その結果 100,000 件近くのジャンク データが存在していることを発見しました。そこには多くの重要な情報が含まれているため、データをクリーンアップし、より厳格な検証手段を追加する必要があります。
ただし、データベースを直接削除するのはあまり科学的ではなく、多くの重要な情報が誤って削除されてしまいます。
ファジークエリステートメントを通じて:
次のようにコードをコピーします。
select * from Feedback where Comments like '%http%'
結果:「メモリ不足」
絶えず検索した結果、問題の主な原因が見つかりました。
LIKE キーワードを使用して ASP で日本語記号をクエリすると、メモリ オーバーフローを示す Chr(-23075) などのエラーが発生します。
データ テーブル内のデータに日本語または一部の特殊な非簡体字中国語文字が含まれている場合も、メモリ オーバーフロー エラーが発生します。
オンラインでは、上記の問題は Microsoft Power Camp で Microsoft エンジニアによって確認されており、解決できない製品のバグであると言われています。唯一の方法は、データベース データ全体を ANSI テキスト形式にエンコードして保存することです。表示されたら再度DECODしてください。
解決策はありません。前述のようにフィールドを変換して別の新しいフィールドに保存し、その後クリーニング操作を実行することです。この過剰なデータに直面するのは本当に困難です。
EncodeString 関数は文字エスケープを実行します
次のようにコードをコピーします。
関数 EncodeString(strWords)
ディム・アイ・アズ・ロング
Dim strEncodeWords
For i = 1 To Len(strWords)
strEncodeWords = strEncodeWords & CStr(Asc(Mid(strWords, i, 1))) & ","
次
EncodeString = strEncodeWords
終了機能
この方法でエスケープした後、あいまい検索の際にキーワードをエスケープします。
次のようにコードをコピーします。
delete * from フィードバック where Comments_new like '%&EncodeString("http")&%'