![]() |
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:
jedoch habe ich das problem, dass mir, wenn ich das Programm starte, die fehlermeldung
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 + ''')'; 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 |
AW: Incorrect Syntax near ')'
Warum die Klammer und warum das Komma vor der Klammer?
|
AW: Incorrect Syntax near ')'
Also das hat mich auch verwirrt:
Hier setzt du nach der Klammer ein Komma
Code:
und sonst immer in der Klammer ein Komma...wodrin ich bisher keinen Sinn sehe.
(Artikel),
Code:
MfG Alaitoc
(Ident,)
|
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 .. |
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. |
AW: Incorrect Syntax near ')'
die syntax fürs insert sieht etwa so aus:
SQL-Code:
Schicker roter Kasten btw
insert into tabelle (feld1,feld2,feld3)values('wert1','wert2','wert3')
|
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 + ''')'; |
AW: Incorrect Syntax near ')'
Mist, stimmt. Da gehören doch Klammern hin, aber nur um alle Felder und nicht um jedes einzeln.
|
AW: Incorrect Syntax near ')'
alles klar ..
danke alaitoc! funktioniert jetzt einwandfrei ! |
AW: Incorrect Syntax near ')'
Noch besser wäre es (SQL-)Parameter zu verwenden
|
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. |
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 ..
|
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 ... |
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