Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Was stimmt mit SQL Syntax nicht??? (https://www.delphipraxis.net/69231-stimmt-mit-sql-syntax-nicht.html)

Mayday171 12. Mai 2006 07:42

Datenbank: MySQL • Version: 3.2 • Zugriff über: Zeos Komponenten

Was stimmt mit SQL Syntax nicht???
 
Hallo!
Versuche ein paar Werte in eine SQL Datenbank reinzu ballern, aber das will mir irgendwie nicht gellingen!

Delphi-Quellcode:
if (cutrev(tempstring,'_')='ERROR') or (cutrev(tempstring,'_')='OK') then
          begin
            zquery1.SQL.Add('REPLACE INTO berichte (status) VALUES("'+cutrev(tempstring,'_')+'")');
            showmessage('status='+(cutrev(tempstring,'_')));
            tempstring:=cut(tempstring,'_');
          end;

        if ((length(cutrev(tempstring,'_'))=1) or (length(cutrev(tempstring,'_'))=2)) and (length(cutrev(tempstring,'_'))<>0) then
          begin
            zquery1.SQL.Add('REPLACE INTO berichte (durchlauf) VALUES('+cutrev(tempstring,'_')+')');
            showmessage('durchlauf='+(cutrev(tempstring,'_')));
            tempstring:=cut(tempstring,'_');
          end;

        if (cutrev(tempstring,'_')='') xor not(strisalpha(cutrev(tempstring,'_'))) then
          begin
            zquery1.SQL.Add('INSERT INTO berichte (produktnummer) VALUES('+cutrev(tempstring,'_')+')');
            showmessage('Produktnummer='+(cutrev(tempstring,'_')));
            tempstring:=cut(tempstring,'_');
          end;
        if tempstring<>'' then
        zquery1.SQL.Add('REPLACE INTO berichte (name) VALUES("'+tempstring+'");');
        //showmessage('name='+tempstring);
        showmessage(zquery1.SQL.Text);




        zquery1.ExecSQL;
        zquery1.sql.clear;
Der Fehler steckt in der 3. SQL Anweißung. Er gibt mir den Fehler aus das mit der Syntax etwas nicht stimmen soll, aber ich endecke keinen Fehler. Sobald ich die Anweißung weg mach läuft alles wunderbar. die spalte produktnummer ist vom Typ integer und auf default 0 gesetzt. Die funktion cutrev gibt einen String zurück.

MfG

fkerber 12. Mai 2006 07:46

Re: Was stimmt mit SQL Syntax nicht???
 
Hi!

Ich glaub, da passt was mit den ' nicht:

SQL-Code:
VALUES('+cutrev(tempstring,'_')+')');
Der erste ' steht da so einsam rum... ;)


Ciao Frederic

Angel4585 12. Mai 2006 07:56

Re: Was stimmt mit SQL Syntax nicht???
 
Zitat:

Zitat von Mayday171
die spalte produktnummer ist vom Typ integer und auf default 0 gesetzt. Die funktion cutrev gibt einen String zurück.

Wie sieht denn der String aus? Ist es möglich das da irgendewelche Zeichen drin sind die nicht drin sein dürfen?


Delphi-Quellcode:
'INSERT INTO berichte (produktnummer) VALUES('+cutrev(tempstring,'_')+')'
@fkerber: passt doch so...oder? :gruebel:


Edit: (cutrev(tempstring,'_')='') wenn das der Fall ist gehst du da rein? Na da kann doch nur ein fehler kommen, das Feld kann ja keine leeren Strings erhalten :roll:

fkerber 12. Mai 2006 08:17

Re: Was stimmt mit SQL Syntax nicht???
 
Hi!

Zitat:

Zitat von Angel4585
Delphi-Quellcode:
'INSERT INTO berichte (produktnummer) VALUES('+cutrev(tempstring,'_')+')'
@fkerber: passt doch so...oder? :gruebel:

:oops:
Vorne den ' übersehen :wall:


Ciao Frederic

Mayday171 12. Mai 2006 09:12

Re: Was stimmt mit SQL Syntax nicht???
 
Alles erledigt!! Danke für die Antworten...
Lag daran, dass SQL oder Delphi nicht mit den vielen SQL Anweißungen in der TStringList von zquery1.sql zurecht kam.
Hab es jetzt in Variablen gespeichert und lasse es in einer Anweißung durchgeben...

MfG


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:28 Uhr.

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