Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Incorrect Syntax near ')' (https://www.delphipraxis.net/152104-incorrect-syntax-near.html)

arcon 11. Jun 2010 11:20

Datenbank: MS SQL • Version: 2003 • Zugriff über: Inat OPC , Ethernet

Incorrect Syntax near ')'
 
Hallo miteinander,

ich möchte gerne in den delphi folgenden String generieren

Code:
 SQL := 'INSERT INTO stammdaten (Prozess,) ' +
           ' (Artikel,)' +
           ' (Ident,)' +
           ' (Betriebsmittel,)' +
           ' (KST,)' +
           ' (APL,)' +
           ' (Anlagennummer,)' +
           ' (Produkt,)' +
           ' (Zeichennummer,)' +
           ' (WZ) Values' +
           ' (''' + Artikel.Text + ''',)' +
           ' (''' + Ident.Text + ''',)' +
           ' (''' + Betriebsmittel.Text + ''',)' +
           ' (''' + KST.Text + ''',)' +
           ' (''' + APL.Text + ''',)' +
           ' (''' + Anlagennummer.Text + ''',)' +
           ' (''' + Produkt.Text + ''',)' +
           ' (''' + Zeich.text + ''',)' +
           ' (''' + WZ.Text + ''')';
jedoch habe ich das problem, dass mir, wenn ich das Programm starte, die fehlermeldung
incorrect syntax near ')' ausgegeben wird.

ich habe schon alles mögliche mit den >'< und den >)< angestellt,
aber irgendwie komme ich nicht auf einen nenner.

wenn ich das ganze als durchgehenden string auf einer zeile schreibe, funkt. es bestens,
aber sobald ich es der übersichtlichkeit untereinander schreibe, meckert der mir rum.

weiß jemand rat ?

danke für die hilfe !

gruß arcon

Luckie 11. Jun 2010 11:22

AW: Incorrect Syntax near ')'
 
Warum die Klammer und warum das Komma vor der Klammer?

Alaitoc 11. Jun 2010 11:25

AW: Incorrect Syntax near ')'
 
Also das hat mich auch verwirrt:

Hier setzt du nach der Klammer ein Komma
Code:
(Artikel),
und sonst immer in der Klammer ein Komma...wodrin ich bisher keinen Sinn sehe.
Code:
(Ident,)
MfG Alaitoc

arcon 11. Jun 2010 11:26

AW: Incorrect Syntax near ')'
 
von welcher klammer und welchem komma redest du ?

p.s. das mit dem artikel, war ein schreibfehler meinerseits .. das hab ich abgeändert, funkt aber trotzdem nicht ..

Luckie 11. Jun 2010 11:27

AW: Incorrect Syntax near ')'
 
Also Klammern bei SQL-Statements kenne ich nur bei Bedingungen und verschachtelten SQL-Statements, nicht aber zum Trennen von Feldern. Felder werden nur durch Kommata getrennt, meines Wissens nach.

Wir reden von den Klammern, die du um die Feldnamen setzt. Die gehören da nicht hin.

Angel4585 11. Jun 2010 11:28

AW: Incorrect Syntax near ')'
 
die syntax fürs insert sieht etwa so aus:
SQL-Code:
insert into tabelle (feld1,feld2,feld3)values('wert1','wert2','wert3')
Schicker roter Kasten btw

Alaitoc 11. Jun 2010 11:30

AW: Incorrect Syntax near ')'
 
Sollte das nicht eher so aussehen?
Code:
 SQL := 'INSERT INTO stammdaten (Prozess, ' +
           ' Artikel,' +
           ' Ident,' +
           ' Betriebsmittel,' +
           ' KST,' +
           ' APL,' +
           ' Anlagennummer,' +
           ' Produkt,' +
           ' Zeichennummer,' +
           ' WZ) Values' +
           ' (''' + Artikel.Text + ''',' +
           ' ''' + Ident.Text + ''',' +
           ' ''' + Betriebsmittel.Text + ''',' +
           ' ''' + KST.Text + ''',' +
           ' ''' + APL.Text + ''',' +
           ' ''' + Anlagennummer.Text + ''',' +
           ' ''' + Produkt.Text + ''',' +
           ' ''' + Zeich.text + ''',' +
           ' ''' + WZ.Text + ''')';

Luckie 11. Jun 2010 11:31

AW: Incorrect Syntax near ')'
 
Mist, stimmt. Da gehören doch Klammern hin, aber nur um alle Felder und nicht um jedes einzeln.

arcon 11. Jun 2010 11:35

AW: Incorrect Syntax near ')'
 
alles klar ..

danke alaitoc!

funktioniert jetzt einwandfrei !

mkinzler 11. Jun 2010 11:38

AW: Incorrect Syntax near ')'
 
Noch besser wäre es (SQL-)Parameter zu verwenden

Alaitoc 11. Jun 2010 11:39

AW: Incorrect Syntax near ')'
 
Kein Problem,
wobei Angel eigentlich schneller war. :)

Hab mir nur die Mühe gemacht das noch umzustricken ^_^

Nur so zur Info, wenn du den String in Delphi übersichtlicher gestaltest...dann musst du nicht den SQL-Code ändern. Du teilst den ja eigentlich nur die Zeilen auf ;)

MfG Alaitoc

Edit: Jupp, (SQL-)Parameter sollte man sich auch mal anschauen.

arcon 11. Jun 2010 11:45

AW: Incorrect Syntax near ')'
 
das hatte ich vorher .. aber aufgrund dessen, dass ich ja eh nur die parameter aus einer edit.box heraus nehme und in die datenbank schreiben will .. kann ich mir den umweg über parameter sparen ..

mkinzler 11. Jun 2010 11:48

AW: Incorrect Syntax near ')'
 
Es gibt viele Gründe Parameter zu verwenden:
-Ist übersichtlicher
-Allgemeiner
-Typkonvertierungen/Anpassungen(Ländereinstellungen usw.) geschiehen automatisch
-Wiederverwendbar
-ab den 2 Durchlauf deutlich schneller
...

sniper_w 11. Jun 2010 12:40

AW: Incorrect Syntax near ')'
 
.. SQL Injection vermeinden


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:00 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