| Autor |
Nachricht |
D. Annies
      
Beiträge: 1718
windows 7
D6 Enterprise, D7 Pers und TD 2006
|
Verfasst: Sa 12.11.11 20:18
Betrifft: BDE
Hi, Delpher,
ich habe mit einer dBase-Tabelle obigen Fehler zur Laufzeit, wenn ich diesen SQL-Befehl verwende:
Mit einer FoxProTabelle funktioniert es.
Ich vermute, dass ich ausschließen muss, dass es keine NULL-Felder geben darf. Wie mache ich das?
Wer weiß Rat?
LG, Detlef
_________________ ut vires desint, tamen est laudanda voluntas
|
| |
|
|
Werbung ausblenden? Dann registriere Dich kostenlos.
Weitere Gründe für eine Registrierung.
Werbung ausblenden? Dann registriere Dich kostenlos.
Weitere Gründe für eine Registrierung.
|
|
D. Annies 
      
Beiträge: 1718
windows 7
D6 Enterprise, D7 Pers und TD 2006
|
Verfasst: So 13.11.11 09:05
Noch kein Erfolg... Kann man "Union" anders ausdrücken?
cu Detlef
_________________ ut vires desint, tamen est laudanda voluntas
|
| |
|
|
mandras
      
Beiträge: 92
Erhaltene Danke: 11
D6 Prof, XE2 Prof
|
Verfasst: So 13.11.11 11:54
D. Annies hat folgendes geschrieben : | Hi, Delpher,
ich habe mit einer dBase-Tabelle obigen Fehler zur Laufzeit, wenn ich diesen SQL-Befehl verwende:
|
Es liegt am "distinct" vermute ich mal (zumindest bei einer Paradox-Tabelle).
Laß das mal weg dann müßten infolge "Union" Duplikate automatisch entfernt werden.
Ansonsten müßte es theoretisch funktionieren die Duplikate per "Group by" zu eliminieren, was aber dann an der langen Ausführungszeit scheitern dürfte (evtl. helfen dagegen korrekte Indexe, das habe ich aber nicht getestet)
Moderiert von Narses: Zitat repariert.
|
| |
|
|
D. Annies 
      
Beiträge: 1718
windows 7
D6 Enterprise, D7 Pers und TD 2006
|
Verfasst: So 13.11.11 17:12
Danke, mandras für deine Idee.
Leider habe ich den gleichen Fehler, wenn ich distinct weglasse.
Gruß, Detlef
_________________ ut vires desint, tamen est laudanda voluntas
|
| |
|
|
mandras
      
Beiträge: 92
Erhaltene Danke: 11
D6 Prof, XE2 Prof
|
Verfasst: So 13.11.11 17:21
sind denn die Felder WPK1NAME bis WPK4NAME wirklich absolut identisch definiert?
|
| |
|
|
D. Annies 
      
Beiträge: 1718
windows 7
D6 Enterprise, D7 Pers und TD 2006
|
Verfasst: So 13.11.11 21:47
UPS !?
Nein, es sind Strings der Länge 71, 43, 65 und 38 - das hatte ich vorher noch nicht bemerkt!
Ist jetzt eine Lösung in Sicht?
LG, Detlef
_________________ ut vires desint, tamen est laudanda voluntas
|
| |
|
|
mandras
      
Beiträge: 92
Erhaltene Danke: 11
D6 Prof, XE2 Prof
|
Verfasst: So 13.11.11 21:54
Das wird es wohl sein. Ich habe leider grad keine DBASE-Datei zum Prüfen zur Hand..
|
| |
|
|
D. Annies 
      
Beiträge: 1718
windows 7
D6 Enterprise, D7 Pers und TD 2006
|
Verfasst: So 13.11.11 22:16
Hi, mandras, wie muss ich denn vorgehen oder soll ich dein Vorgehen abwarten?
cu, Detlef
_________________ ut vires desint, tamen est laudanda voluntas
|
| |
|
|
mandras
      
Beiträge: 92
Erhaltene Danke: 11
D6 Prof, XE2 Prof
|
Verfasst: So 13.11.11 23:33
entweder Du änderst die Tabellendefinition so daß alle Felder gleich lang sind oder versuch es einmal so:
SQL.Text := format('select cast (WPK1NAME as varchar(71)) as WPK from "%s"', [TbSchueler.tablename]) +
format(' UNION select cast (WPK2NAME as varchar(71)) as WPK from "%s"', [TbSchueler.tablename]) +
format(' UNION select cast (WPK3NAME as varchar(71)) as WPK from "%s"', [TbSchueler.tablename]) +
format(' UNION select cast (WPK4NAME as varchar(71)) as WPK from "%s"', [TbSchueler.tablename]);
(Hoffe ich habe jetzt keine Fehler eingebaut).
Wie gesagt, ich habe grad keine DBASE-Dateien, mit meinen Paradoxen klappt es.
Für diesen Beitrag haben gedankt: D. Annies
|
| |
|
|
D. Annies 
      
Beiträge: 1718
windows 7
D6 Enterprise, D7 Pers und TD 2006
|
Verfasst: Mo 14.11.11 08:48
Hurra, hurra,
es klappt bestens, ich habe sogar (zur Sicherheit) die Stringlänge für alle auf 75 gesetzt.
Toll, Danke mandras!
_________________ ut vires desint, tamen est laudanda voluntas
|
| |
|
|