In diesem Artikel wird hauptsächlich die Lösung für den ASP-Fuzzy-Abfragespeicherüberlauf in ACCESS vorgestellt. Der Grund für dieses Problem ist die Verwendung einer Transkodierungsfunktion, die sich auf Folgendes bezieht
Heute habe ich bei der täglichen Wartung einer Website festgestellt, dass das Nachrichtenprogramm der Website keiner strengen Überprüfung und Filterung unterzogen wurde, was zu fast 100.000 Junk-Daten führte. Darin sind viele wichtige Informationen enthalten, die Daten müssen bereinigt und strengere Überprüfungsmaßnahmen hinzugefügt werden.
Das direkte Löschen in der Datenbank ist jedoch nicht sehr wissenschaftlich und viele wichtige Informationen werden versehentlich gelöscht.
Durch Fuzzy-Abfrageanweisungen:
Kopieren Sie den Codecode wie folgt:
Wählen Sie „*“ aus „Feedback“, wobei Kommentare wie „%http%“ vorliegen.
Ergebnis: „Nicht genügend Speicher“
Nach ständiger Suche wurde die Hauptursache des Problems gefunden:
Wenn Sie das Schlüsselwort LIKE zum Abfragen japanischer Symbole in ASP verwenden, tritt ein Fehler auf, z. B. Chr (-23075), der auf einen Speicherüberlauf hinweist.
Wenn die Daten in der Datentabelle japanische oder einige spezielle nicht vereinfachte chinesische Zeichen enthalten, treten auch Speicherüberlauffehler auf.
Im Internet heißt es, dass das obige Problem von Microsoft-Ingenieuren im Microsoft Power Camp bestätigt wurde und ein Produktfehler ist, der nicht behoben werden kann. Die einzige Möglichkeit besteht darin, die gesamten Datenbankdaten in das ANSI-Textformat zu kodieren und dann zu speichern. DECODE erneut, wenn angezeigt.
Es gibt keine Lösung. Die einzige Möglichkeit besteht darin, das Feld wie oben erwähnt in ein anderes neues Feld zu speichern und dann den Reinigungsvorgang durchzuführen. Es ist wirklich schwierig, sich dieser übermäßigen Datenmenge zu stellen.
Die EncodeString-Funktion führt Zeichen-Escapezeichen durch
Kopieren Sie den Codecode wie folgt:
Funktion EncodeString(strWords)
Dim i As Long
StrEncodeWords dimmen
Für i = 1 To Len(strWords)
strEncodeWords = strEncodeWords & CStr(Asc(Mid(strWords, i, 1))) & ","
Nächste
EncodeString = strEncodeWords
Funktion beenden
Nachdem Sie auf diese Weise maskiert haben, maskieren Sie bei der Fuzzy-Suche die Schlüsselwörter
Kopieren Sie den Codecode wie folgt:
* aus Feedback löschen, wobei Comments_new wie '%&EncodeString("http")&%' aussieht