![]() |
Delphi-Version: 5
AV bei Methoden-Ende
Liste der Anhänge anzeigen (Anzahl: 1)
Aloah DP,
ich baue gerade ein kleines Backup/Restore Tool (bzw. Modul) für MySQL Tabellen. Das ganze ist noch recht roh und klein, vor allem weil ich mich seit 2 Stunden mit einem Phänomen herum plage, wozu mein Latein nicht mehr ausreicht. Ich habe einen Mini-Test angehängt, der eine Backup-Datei von mir liest. Die betroffene Methode ist in der Unit _uRestore.pas ReadCreateStatement(), cirka Zeile 30. Lasse ich hier das zweite ReadBuffer weg, kommt die AV auch nicht mehr. Da aber der Buffer-Inhalt nach dem Read völlig richtig ist, komme ich einfach nicht dahinter, was daran zur AV führt. Zumal die Adressen der AV auch immer mal etwas anders sind, und das CPU-Fenster auch nicht unbedingt immer an der gleichen Stelle im ASM-Code aufpoppt. Durchsteppen alleine half mir auch nicht so recht, da F7 auf dem end; der Methode einfach direkt zu der AV führt. Ich weiss nicht mehr, wo ich mal gucken könnte. (Ich habe alles was an die Datenbank geht mal aus der Klasse gestrichen, nicht jeder hat UniDAC und eine passende DB parat denke ich :). Die Unit _uBackup.pas ist nicht für den Test angepasst und wird für diesen auch nicht gebraucht. Die ist nur da, damit ersichtlich wird, wie die beiliegende Datei "consts.ktb" entstanden ist. Falls interessant/wichtig.) Es wäre super, wenn sich das mal jemand in einem stillen Minütchen angucken mag. Besten Dank dafür auch schon mal im Voraus! |
AW: AV bei Methoden-Ende
müsste das nicht
Delphi-Quellcode:
heißen?
f.ReadBuffer(createStatement[1], createLength*SizeOf(WideChar));
|
AW: AV bei Methoden-Ende
Ich geh tot. Beim WriteBuffer hatte ich es mit Index am String versucht, und das hat geknallt. Jetzt beim Restore bin ich einfach mal davon ausgegangen, dass das gleich sein müsste :wall:. An sowas hängt man dann für Stunden :lol:
Danke! Edit: OOPS! Nein, doch nicht. Leider stimmt dann der Inhalt des strings nicht mehr, aber die AV ist weg. Meh. |
AW: AV bei Methoden-Ende
Delphi-Quellcode:
f.ReadBuffer(createStatement[1], createLength*SizeOf(WideChar));
Edit: Man ist die DP schnell..... |
AW: AV bei Methoden-Ende
Das war es leider nicht. Ich bin mir sicher, dass meine Statements nicht in Chinesisch geschrieben sind :) (Solche Zeichen landen dann im String).
|
AW: AV bei Methoden-Ende
Ach Leute, sorry für den Push hier. Aber meine Doofheit... Sobald ich mit Index 1 schreibe, ist auch das gelesene richtig. Ich hab mich davon irritieren lassen, dass in der unkomprimierten Datei dann mit Nodepad die Chinesischen Zeichen waren. Jetzt stimmt auch mein Weltbild wieder.
|
AW: AV bei Methoden-Ende
Immer diese AnsiStrings. :roll:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz