![]() |
Datenbank: MySQL • Version: 4.0 • Zugriff über: Zeos Komponenten
Absturz bei letzter Query
Hallo !
Habe mich an MySQl und Delphi 6 mit Hilfe der Zeos Komponenten versucht. Es klappt auch alles wunderbar, doch jetzt bin ich auf einen Fehler gestoßen hinter den ich einfach nicht kommen will.
Delphi-Quellcode:
Er gibt mir immer wenn ich die letzte Query auf dem SQL Server ausführen will eine Fehlermeldung zurück.
while tempstring<>'' do
begin // überprüfung auf Fehlerbericht if (cutrev(tempstring,'_')='ERROR') or (cutrev(tempstring,'_')='OK') then begin zquery1.SQL.Add('INSERT INTO berichte (status) VALUES ("'+cutrev(tempstring,'_')+'")'); end // überprüfen auf Durchlaufnummer else if (length(cutrev(tempstring,'_'))=1) or (length(cutrev(tempstring,'_'))=2) then // überprüfen auf Durchlaufnummer begin zquery1.SQL.Add('INSERT INTO berichte (durchlauf) VALUES ('+cutrev(tempstring,'_')+')'); end // Überprüfen auf Produktnummer else if (length(cutrev(tempstring,'_'))>3) or (cutrev(tempstring,'_')='0') then begin zquery1.SQL.Add('INSERT INTO berichte (produktnummer) VALUES ('+cutrev(tempstring,'_')+')'); end // Rest der Namens else if not ((cutrev(tempstring,'_'))='') and not ((cutrev(tempstring,'_'))=' ') then begin zquery1.SQL.Add('INSERT INTO berichte (name) VALUES ("'+cutrev(tempstring,'_')+'")'); end; // Zeit eintragen //zquery1.SQL.Add('INSERT INTO berichte (zeit) VALUES ("'+datetimetostr((FileDatetoDatetime(fileage(filelistbox1.Directory+'\'+listbox1.Items[j]))))+'")'); try zquery1.ExecSQL; tempstring:=cut(tempstring,'_'); end; In diesen Fall bei der INSERT INTO (berichte) Zeile. Wenn ich die Kommentare bei der darauf folgenden Query wegmachen würde, würde mir er da einen Fehler ausgeben. Der Fehler sagt mir das irgendwas mit der SQL-Syntax nicht stimmen soll usw. Woran kann das liegen?????? BITTE HELFT MIR!! MfG |
Re: Absturz bei letzter Query
Hi, mal ein Tipp am Rande, benutze immer Parameter. :wink:
|
Re: Absturz bei letzter Query
Hi
Wieviele Zeilen willst du eigentlich in diesem Query einfügen? Versuche mal nur eine Zeile mit allen Werten einzufügen, am Besten über Parameter.
SQL-Code:
und dann nur ein ExecSQL
Insert into berichte (Wert1,Wert2,Wert3) values (:Param1,:Param2,:Param3)
mfg wo |
Re: Absturz bei letzter Query
was heißt Parameter? Wie deffiniert man dir?
Ich muss verschiedene Zeilen an Querys machen da ich ja mit if Bedingungen überprüfe |
Re: Absturz bei letzter Query
Zitat:
Du musst dann nur noch die Parameter richtig angeben (siehe deine ZEOS-Kompo, hab die nie benutzt). |
Re: Absturz bei letzter Query
Welchen Beitrag meinst du ???
Jetzt stürtzt er nicht mehr bei der ersten Query ab sondern bei der :
Delphi-Quellcode:
Der Rückgabewert von cutrev ist ein string und die SQL Zeile ist Integer...
zquery1.SQL.Add('INSERT INTO berichte (durchlauf) VALUES ('+cutrev(tempstring,'_')+')');
MfG |
Re: Absturz bei letzter Query
Zitat:
![]()
Delphi-Quellcode:
gehen. Hab kein Delphi mehr drauf. Musst halt mal schauen.
ParamByName
|
Re: Absturz bei letzter Query
Liste der Anhänge anzeigen (Anzahl: 1)
Ich glaube es liegt daran das es einfach zu schnell geht...
Habe grad gemerkt das er erst nach dem 2. Durchlauf der While Schleife abrotzt und das mir folgender Fehlermeldung (siehe Anhang). Ich schließe daraus, dass wenn er den ersten Durchlauf bzw. den ersten Eintrag ohne Probleme mach mit meinen SQL Befehlen alles in Ordnung sein muss. Woran liegt es das das Prog trotzdem abstürtzt?? Muss ich dieses ExecSQL irgendwie wieder lösen oder leeren bzw. schließen ???
Delphi-Quellcode:
MfG
while tempstring<>'' do
begin // überprüfung auf Fehlerbericht if (cutrev(tempstring,'_')='ERROR') xor (cutrev(tempstring,'_')='OK') then begin zquery1.SQL.Add('INSERT INTO berichte (status) VALUES ("'+cutrev(tempstring,'_')+'")'); end // überprüfen auf Durchlaufnummer else if ((length(cutrev(tempstring,'_'))=1) xor (length(cutrev(tempstring,'_'))=2)) and not (cutrev(tempstring,'_')='0') then // überprüfen auf Durchlaufnummer begin zquery1.SQL.Add('INSERT INTO berichte (durchlauf) VALUES ('+cutrev(tempstring,'_')+')'); end // Überprüfen auf Produktnummer else if (length(cutrev(tempstring,'_'))>3) or (cutrev(tempstring,'_')='0') then begin zquery1.SQL.Add('INSERT INTO berichte (produktnummer) VALUES ('+cutrev(tempstring,'_')+')'); end // Rest der Namens else if not ((cutrev(tempstring,'_'))='') and not ((cutrev(tempstring,'_'))=' ') then begin zquery1.SQL.Add('INSERT INTO berichte (name) VALUES ("'+cutrev(tempstring,'_')+'")'); end; // Zeit eintragen //zquery1.SQL.Add('INSERT INTO berichte (zeit) VALUES ("'+datetimetostr((FileDatetoDatetime(fileage(filelistbox1.Directory+'\'+listbox1.Items[j]))))+'")'); tempstring:=cut(tempstring,'_'); zquery1.ExecSQL; end; |
Re: Absturz bei letzter Query
Mach mal ein Clear, bevor du dein neues SQL-Statement hinzufügst und bau das mal mit den Parametern ein ;)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:24 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 by Thomas Breitkreuz