Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Zugriffsfehler ADOQuery (https://www.delphipraxis.net/166000-zugriffsfehler-adoquery.html)

t0mmy 25. Jan 2012 13:58

Datenbank: MSSQL • Version: 2008 • Zugriff über: ADO

Zugriffsfehler ADOQuery
 
Hallo!

Also ich bekomme einen Fehler:

Zitat:

Zugriffsverletzung bei Adresse 00639556 in Modul 'Programm.exe'. Lesen von Adresse 0000000.
und das wenn ich Zweimal ein Query in meinem Programm verwende.


Die sieht folgendermaßen aus:

Delphi-Quellcode:
  with ADOQuery_1 do
  begin
    Close;
    SQL.Clear;
    SQL.Text := 'DELETE FROM Tabelle2'+
                'WHERE Spalte1 LIKE '''+
                NummerString2+'''';
    ExecSQL;

    SQL.Clear;
    SQL.Text := 'DELETE FROM Tabelle1 '+
                'WHERE Spalte1 LIKE '''+
                NummerString2+'''';
    ExecSQL;
    Close;
  end;
Sobald das Query den SQL befehl zugewiesen bekommt schreibt er den Fehler.(Hab ich mit Haltepunkten festgestellt) woran könnte das liegen ich möchte keine eigene Query verwenden!

Bernhard Geyer 25. Jan 2012 14:02

AW: Zugriffsfehler ADOQuery
 
Da hast du wohl entweder deine Query nicht erzeugt oder woanders frei gegeben.

mkinzler 25. Jan 2012 14:02

AW: Zugriffsfehler ADOQuery
 
-Existiert den die Instanz?
-Irgendwelche persistenten (Zugriffs-)felder?
Btw. Die Clearanweisungen sind überflüssig.

t0mmy 25. Jan 2012 14:13

AW: Zugriffsfehler ADOQuery
 
Die Query ist erzeugt.. Wie meinst du das mit dem Freigeben?
Auch das clear löst den fehler nicht -.-

DeddyH 25. Jan 2012 14:34

AW: Zugriffsfehler ADOQuery
 
Delphi-Quellcode:
Assert(Assigned(ADOQuery1));
ADOQuery_1.Close;
ADOQuery_1.SQL.Text := 'DELETE FROM Tabelle2'+
                'WHERE Spalte1 LIKE '''+
                NummerString2+'''';
ADOQuery_1.ExecSQL;
ADOQuery_1.SQL.Text := 'DELETE FROM Tabelle1 '+
                'WHERE Spalte1 LIKE '''+
                NummerString2+'''';
ADOQuery_1.ExecSQL;
Was kommt hierbei? Übrigens solltest Du das Dingen besser parametrisieren.

t0mmy 25. Jan 2012 15:14

AW: Zugriffsfehler ADOQuery
 
Bei deinem Code kommt wieder einer Zugriffsverletzung -.-

DeddyH 25. Jan 2012 15:22

AW: Zugriffsfehler ADOQuery
 
Und in welcher Zeile?

p80286 25. Jan 2012 16:59

AW: Zugriffsfehler ADOQuery
 
wie wäre es hiermit:
Code:
ADOQuery_1.Close;
ADOQuery_1.SQL.Text := 'DELETE FROM Tabelle2'+
                'WHERE Spalte1 LIKE '''+
                NummerString2+'''';
ADOQuery_1.ExecSQL;
ADOQuery_1.Close;
ADOQuery_1.SQL.Text := 'DELETE FROM Tabelle1 '+
                'WHERE Spalte1 LIKE '''+
                NummerString2+'''';
ADOQuery_1.ExecSQL;
ADOQuery_1.Close;
Gruß
K-H

DeddyH 25. Jan 2012 17:28

AW: Zugriffsfehler ADOQuery
 
Spinne ich, oder ist nach ExecSQL die Datenmenge sowieso geschlossen? Ich hege wie meine Vorredner ja auch eher den Verdacht, dass die Query gar nicht mehr (oder noch nicht) existiert, aber nicht nil ist.

Sir Rufo 25. Jan 2012 17:57

AW: Zugriffsfehler ADOQuery
 
Wenn das so ausgeführt wird, dann sollte zunächst mal ein Fehler vom SQL Server zurückkommen, denn hinter Tabelle2 fehlt ein Leerzeichen ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:27 Uhr.
Seite 1 von 4  1 23     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz