![]() |
Datenbank: ? • Version: ? • Zugriff über: ODBC
Zugriffsverletzung
Hallo,
ich habe ein Merkwürdiges Problem. Ich wollte eine Exe starten und dort kommt jetzt ne Zugriffsverletzung. Wen ich den Quellcode debugge kommt eine Fehlermeldung von EAccessViolation. Quellcode wurde nicht geändert. Die Fehlermeldung kommt an einer Stelle: Q_RelAc.SQL.Clear Die Query wurde vorher geschlossen. Das Merkwürdige ist, dass er einmal ordnungsgemäß durchläuft und beim zweiten Mal kommt die Fehlermeldung. An was könnte das liegen? Grüßle Geraldine |
Re: Zugriffsverletzung
Und das sollen wir an einer(!) Zeile Quellcode erkennen?
|
Re: Zugriffsverletzung
Ohne weitere Infos/Code werden wir dir nicht helfen können
Btw.: Statt
Delphi-Quellcode:
würde ich
Q_RelAc.SQL.Clear;
Q_RelAc.SQL.Add();
Delphi-Quellcode:
verwenden
Q_RelAc.SQL.Text := ...;
|
Re: Zugriffsverletzung
anbei der Quellcodeteil...
Bei SQL.Clear springt er raus...
Delphi-Quellcode:
with Q_RelAc do
begin SQL.Clear; if fMain.IniWerte.LVSFile = '1' then begin Q_RelAc.SQL.Add('select ik, mnr, ktxt, uschl, usartklasse, usplatzgroesse, usmaxbest, gewicht, me, createdate '+ 'from relac '+ 'where '+ 'uslvs = :p0'); end else if fMain.IniWerte.LVSFile = '3' then begin Q_RelAc.SQL.Add('select x.ik, a.mnr, a.ktxt, a.uschl, x.usartklasse, x.usplatzgroesse, x.usmaxbest, a.gewicht, a.me, a.createdate '+ 'from relac a, relacx x '+ 'where '+ 'x.uslvs = :p0 '+ 'and x.mnr = a.mnr'); end; Params[0].AsInteger := lvsReady; Open; First; while not EoF do begin //StartTimer('Vorbereitung für ASCII-Datei (Stammdaten)'); S := FormatDateTime('yyyymmddhhnnsszzz', Now); F := Format(fnMMArtikel, [S]); // Z := FieldByName('Ik').AsInteger; Z := Fields[0].AsInteger; //StopTimer; //StartTimer('Schreiben der ASCII-Datei (Stammdaten)'); WriteDownloadFile2( D[1] + F, // Dateiname D[2] + F, // Dateiname für Sicherungskopie Fields[1].AsString, Fields[2].AsString, Fields[3].AsString, Fields[4].AsInteger, Fields[5].AsInteger, Fields[6].AsFloat, Fields[7].AsFloat, Fields[8].AsString); // Geändert 09.07.2006 /EH wegen variablem SQL ac / Acx // FieldByName('MNr').AsString, // Artikel // FieldByName('KTxt').AsString, // Beschreibung 1 // FieldByName('Uschl').AsString, // Beschreibung 2 // FieldByName('USArtKlasse').AsInteger, // Artikelklasse // FieldByName('USPlatzGroesse').AsInteger, // Platzgröße // FieldByName('USMaxBest').AsFloat, // Max. Bestand // FieldByName('Gewicht').AsFloat, // RefGewicht // FieldByName('ME').AsString); // Einheit //StopTimer; //StartTimer('Update RELAC (Status=0)'); UpdateStatusRELAC(Z, lvsOk); //StopTimer; Next; end; Close; Free; |
Re: Zugriffsverletzung
Warum kein Case
Kann fMain.IniWerte.LVSFile auch andere Werte als 1 und 3 annehmen? |
Re: Zugriffsverletzung
Ne, andere Werte gibt es bis jetzt nicht.
Das komische ist, der Quellcode lief / läuft, aber wenn ich ihn jetzt starten will, dann kommt die Fehlermeldung. Es wurde nichts geändert... |
Re: Zugriffsverletzung
Mir ist das Free am Ende aufgefallen. Wird die Query bei jedem Aufruf neu erzeugt?
|
Re: Zugriffsverletzung
Ich denke auch, daß das free am Ende den Ärger macht. Das zugehörige create hab ich nirgendwo gefunden.
Gruß K-H p.s. Zitat:
|
Re: Zugriffsverletzung
Hallöchen,
ich hab jetzt das free rausgenommen und man siehe... es funktioniert. Danke an alle, die mir geholfen haben! Grüßle Geraldine :bounce2: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:35 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