Autor |
Beitrag |
luna22
Hält's aus hier
Beiträge: 3
|
Verfasst: Di 14.12.04 13:07
Hallo zusammen,
habe folgendes Problem:
Daten aus zwei Tabellen sollen übertragen werden mit folgender Anweisung:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7:
| with IBQuery5 do begin close; sql.Clear; sql.Add('SELECT ikpf_test.IBLNR, ikpf_test.GJAHR, iseg_test.ZEILI,iseg_test.MATNR, iseg_test.WERKS, iseg_test.LGORT, iseg_test.CHARG, iseg_test.SOBKZ, iseg_test.BSTAR'+ 'iseg_test.USNAZ, iseg_test.ZLDAT, iseg_test.XZAEL, iseg_test.MENGE, iseg_test.MEINS, iseg_test.ERFMG FROM ikpf_test INNER JOIN iseg_test ON (ikpf_test.GJAHR = iseg_test.GJAHR) AND (ikpf_test.IBLNR = iseg_test.IBLNR)'); open; end; |
Bei Ausführung kommt die Fehlermeldung:
SQL Error
SQL Error Code -104
token unknown -line1, char 167
Kann mir jemand helfen???
Danke
luna
|
|
Grendel
      
Beiträge: 443
Gentoo Linux, MacOS X, Win 2000
D5 Ent, D7 Ent, Lazarus, Anjuta, MonoDevelop
|
Verfasst: Di 14.12.04 13:23
Das hier
Quelltext 1:
| , iseg_test.BSTAR'+ 'iseg_test.USNAZ, |
ist schonmal falsch. Da muss auf jeden Fall noch ein Leerzeichen zwischen.
Bis neulich ...
|
|
luna22 
Hält's aus hier
Beiträge: 3
|
Verfasst: Di 14.12.04 13:26
Titel: ..
ja das Leerzeichen ist doch im Original da, ist nur hier irgendwie verruscht! 
|
|
Lemmy
      
Beiträge: 792
Erhaltene Danke: 49
Windows 7 / 10; CentOS 7; LinuxMint
Delphi 7-XE10.1, VS 2015
|
Verfasst: Di 14.12.04 13:28
Hi,
ersetze ale aller erstes mal die TIBQuery mit TIBDataSet. Die TIBQuery wurden lediglich zu Umstellungszwecken (BDE-IBX) programmiert und sollen eigentlich nicht eingesetzt werden.
Zum eigentlichen SQL:
Verwende Tabellen-Aliase:
Delphi-Quelltext 1:
| sql.Add('SELECT A.IBLNR, A.GJAHR, B.ZEILI, B.MATNR, B.WERKS, B.LGORT, B.CHARG, B.SOBKZ, B.BSTAR'+ 'B.USNAZ, B.ZLDAT, B.XZAEL, B.MENGE, B.MEINS, B.ERFMG FROM A INNER JOIN B ON (A.GJAHR = B.GJAHR) AND (A.IBLNR = B.IBLNR)'); |
Dann wirst Du feststellen, dass hier der Fehler liegt:
Delphi-Quelltext
daraus wird:
Delphi-Quelltext
Also bitte ein Leerzeichen reinhauen!
Lemmy
|
|
CenBells
      
Beiträge: 1547
Win 7
Delphi XE5 Pro
|
Verfasst: Di 14.12.04 14:10
Hi,
ich bin mir nicht so sicher, ob da ein leerzeichen hilft. Ich vermute luna22 will die beiden spalten wirklich addieren.
Dann muss das ganze so aussehen.
Delphi-Quelltext 1:
| sql.Add('SELECT A.IBLNR, A.GJAHR, B.ZEILI, B.MATNR, B.WERKS, B.LGORT, B.CHARG, B.SOBKZ, B.BSTAR + B.USNAZ, B.ZLDAT, B.XZAEL, B.MENGE, B.MEINS, B.ERFMG FROM A INNER JOIN B ON (A.GJAHR = B.GJAHR) AND (A.IBLNR = B.IBLNR)'); |
Gruß
Ken
_________________ Eine Klasse beschreibt die Struktur und das Verhalten einer Menge gleichartiger Objekte.
|
|
luna22 
Hält's aus hier
Beiträge: 3
|
Verfasst: Di 14.12.04 14:12
also hab jetzt folgendes geändert:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| with IBDataSet1 do begin close; deletesql; selectsql.Add('SELECT ikpf_test.IBLNR, ikpf_test.GJAHR, iseg_test.ZEILI, iseg_test.MATNR, iseg_test.WERKS, iseg_test.LGORT, iseg_test.CHARG, iseg_test.SOBKZ, iseg_test.BSTAR' + 'iseg_test.USNAZ, iseg_test.ZLDAT, iseg_test.XZAEL, iseg_test.MENGE, iseg_test.MEINS, iseg_test.ERFMG FROM ikpf_test INNER JOIN iseg_test ON (ikpf_test.GJAHR = iseg_test.GJAHR) AND (ikpf_test.IBLNR = iseg_test.IBLNR)'); open; end; |
bekomme aber noch immer diesselbe Fehlermeldung.
SQL ERROR
ERROR CODE -104
Line 1 char 167
wo könnte der Fehler denn sonst noch liegen?
|
|
LCS
      
Beiträge: 1305
Erhaltene Danke: 1
WIN 7, WIN 8
Delphi XE5, Delphi XE, Delphi 2007
|
Verfasst: Di 14.12.04 14:16
Hallo
Vor iseg_test.USNAZ (oder hinter iseg_test.BSTAR) fehlt das Komma.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| with IBDataSet1 do begin close; deletesql; selectsql.Add('SELECT ikpf_test.IBLNR, ikpf_test.GJAHR, iseg_test.ZEILI, iseg_test.MATNR, iseg_test.WERKS, iseg_test.LGORT, iseg_test.CHARG, iseg_test.SOBKZ, iseg_test.BSTAR' + ', iseg_test.USNAZ, iseg_test.ZLDAT, iseg_test.XZAEL, iseg_test.MENGE, iseg_test.MEINS, iseg_test.ERFMG FROM ikpf_test INNER JOIN iseg_test ON (ikpf_test.GJAHR = iseg_test.GJAHR) AND (ikpf_test.IBLNR = iseg_test.IBLNR)'); open; end; |
So sollte das eigentlich funktionieren
Gruss Lothar
_________________ Der BH ist für die Brust, der Plan ist für'n Ar...
|
|
UGrohne
      

Beiträge: 5502
Erhaltene Danke: 220
Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
|
Verfasst: Di 14.12.04 14:17
Ist das oben beschriebene Leerzeichen wirklich drin, denn in dem Quellcode ist zwischen
Delphi-Quelltext
und
Delphi-Quelltext 1:
| 'iseg_test.USNAZ, iseg_test.ZLDAT, |
kein Leerzeichen und auch kein Komma! Und laut der Zeichenangabe könnte da auch der Fehler liegen.
//EDIT: Verdammt, zu langsam 
|
|
|