Entwickler-Ecke
Datenbanken - Nochmal: SQL-Befehl wurde nicht korrekt beendet
gamoes - Fr 14.04.06 21:57
Titel: Nochmal: SQL-Befehl wurde nicht korrekt beendet
Auch beim folgenden Quelltext erhalte ich die Meldung SQL-Befehl wurde nicht korrekt beendet und ich verstehe nicht wieso:
**************************************************
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| ora_qry_Re_daten_lesen2.SQL.Text:='SELECT * FROM rechnung, rechdaten, kunden, artikel' +'WHERE kdnr=r_kdnr' +'AND renr=rechnr' +'AND artnr=r_artnr' +'AND renr='+QuotedStr(lbl_ReNr.Caption); ora_qry_Re_daten_lesen2.Execute; ******************************************************* |
Nur artnr und r_artnr sind Strings alle anderen nr-Spalten sind Number.
Gruß
Gabi
Moderiert von
raziel: Delphi-Tags hinzugefügt
Marco D. - Fr 14.04.06 22:05
Titel: Re: Nochmal: SQL-Befehl wurde nicht korrekt beendet
Quelltext
1: 2: 3: 4: 5:
| SELECT * FROM rechnung, rechdaten, kunden, artikel' +'WHERE kdnr=r_kdnr' +'AND renr=rechnr' +'AND artnr=r_artnr' +'AND renr='+QuotedStr(lbl_ReNr.Caption); |
Probiere es mal so:
Quelltext
1: 2: 3: 4: 5:
| SELECT * FROM rechnung, rechdaten, kunden, artikel ' +'WHERE kdnr=r_kdnr' +'AND renr=rechnr' +'AND artnr=''r_artnr''' +'AND renr='+QuotedStr(lbl_ReNr.Caption); |
Blawen - Fr 14.04.06 23:54
Titel: Re: Nochmal: SQL-Befehl wurde nicht korrekt beendet
gamoes hat folgendes geschrieben: |
Auch beim folgenden Quelltext erhalte ich die Meldung SQL-Befehl wurde nicht korrekt beendet und ich verstehe nicht wieso:
**************************************************
ora_qry_Re_daten_lesen2.SQL.Text:='SELECT * FROM rechnung, rechdaten, kunden, artikel'
+'WHERE kdnr=r_kdnr'
+'AND renr=rechnr'
+'AND artnr=r_artnr'
+'AND renr='+QuotedStr(lbl_ReNr.Caption);
ora_qry_Re_daten_lesen2.Execute;
*******************************************************
Nur artnr und r_artnr sind Strings alle anderen nr-Spalten sind Number.
Gruß
Gabi |
Machst Du bewusst keine Leerschläge?
Sollte es nicht heissen
Delphi-Quelltext
1: 2: 3:
| .... +' AND ....' .... |
hansa - Sa 15.04.06 05:14
Heißt das bei Euch echt "Leerschläge" ? :shock: Wieviele Tastaturen braucht dann ein User ca. pro Woche ? :lol: Aber egal. Ob bewußt oder unbewußt. Sowas setzt man mit Add zusammen und fertig. Wer sich solch lange Bezeichner leisten kann, für den ist wohl auch ein SelectSQl.Add anstatt eines SQL.Text und ++ zumutbar.
gamoes - Sa 15.04.06 12:02
Besten Dank für Eure Hilfe. Jetzt klappt es.
Gruß
Gabi
Blawen - Sa 15.04.06 13:45
hansa hat folgendes geschrieben: |
Heißt das bei Euch echt "Leerschläge" ? :shock: Wieviele Tastaturen braucht dann ein User ca. pro Woche ? :lol: |
Klar, wie willst Du es sonst benennen -> Leerzeichen?
Aber der User soll ja auch nicht mit der Tastatur um sich schlagen! - Um die Tastatur hab ich dabei ja keine Angst, die hält ja auch sonst einiges aus! ;-)
Zitat: |
Sowas setzt man mit Add zusammen und fertig. Wer sich solch lange Bezeichner leisten kann, für den ist wohl auch ein SelectSQl.Add anstatt eines SQL.Text und ++ zumutbar. |
Wenn Du mit einem Datenformular arbeitest und den Querys noch logische Namen vergibst, ist es unter Umständen durchaus übersichtlicher nicht mit add zu arbeiten (insbesondere wenn das ganze noch ausdruckbar sein soll)
hansa - Sa 15.04.06 16:00
Ah ja, Schweizer. Alles klar. :D Guck Dir mal den geposteten Source etwas genauer an. Der ist, so wie er da steht, prädestiniert für Add. Jetzt mal unabhängig von dem dahinterliegenden Sinn :
Delphi-Quelltext
1: 2:
| if CheckBox1.checked then SelectSQL.Add ('AND artnr=r_artnr'); |
Ohne Add wirst Du letzeres nur schwerlich machen können. Auf jeden Fall viel komplizierter und wohl kaum so gut zu lesen, wie die Alternative. Klar kann man auch hingehen und in solchen Fällen das komplette Select mehrmals hinschreiben. Je nach Status der Checkbox u.a. Schon mal SQLMonitor benutzt ? In Verbindung mit einem simplen Memo stehen da die Zeilen schön untereinander. Sollte jetzt trotz allem eine einzige Zeile gebraucht werden. Datenformular ? :shock: Trotz Add kann man immer noch mit SelectSQL.Text das Ganze auch als eine Zeile ausdrucken !
Blawen - Sa 15.04.06 16:42
Zitat: |
Delphi-Quelltext 1: 2:
| if CheckBox1.checked then SelectSQL.Add ('AND artnr=r_artnr'); |
Ohne Add wirst Du letzeres nur schwerlich machen können. Auf jeden Fall viel komplizierter und wohl kaum so gut zu lesen, wie die Alternative. Klar kann man auch hingehen und in solchen Fällen das komplette Select mehrmals hinschreiben. Je nach Status der Checkbox u.a. Schon mal SQLMonitor benutzt ? In Verbindung mit einem simplen Memo stehen da die Zeilen schön untereinander. Sollte jetzt trotz allem eine einzige Zeile gebraucht werden. Datenformular ? |
Problemlos möglich - schlussendlich ist es eher eine Frage des pers. Geschmacks:
Delphi-Quelltext
1: 2:
| if CheckBox1.checked then SelectSQL.Text := SelectSQL.Text + ' AND artnr=r_artnr'; |
Wieso muss das Select mehrfach aufgeführt werden? Ob jetzt mit Add oder mit "+" - das Ergebnis ist doch das selbe!
Übersichtlichkeit:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| FMD.ZQ_Speich.SQL.Text := 'Insert Into KONTAKTDATEN Set ' + 'ANREDE_ID = :Anrede_ID, ' + 'TITEL_ID = :Titel_ID, ' + 'VORNAME = :Vorname, ' + 'NACHNAME = :Nachname, ' + 'STRASSE1 = :Strasse1, ' + ... |
Find ich persönlich übersichtlicher als mit Add.
Zitat: |
Trotz Add kann man immer noch mit SelectSQL.Text das Ganze auch als eine Zeile ausdrucken ! |
Bezog sich nicht auf das Ausgeben des Inhalts des Query, sondern auf das Ausdrucken des Quelltextes zwecks Archivierung.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!