Entwickler-Ecke
Datenbanken - TQuery: "Künstliches" Feld taucht nicht auf
Flons - Di 17.02.09 15:42
Titel: TQuery: "Künstliches" Feld taucht nicht auf
Hallo zusammen,
leider hat meine Suche nicht das gewünschte Ergebnis geliefert oder ich habe falsch gesucht...
Ich habe mir eine View erstellt, die neben DB- Feldern auch ein künstliches Feld enthält:
SQL-Anweisung
1: 2: 3: 4: 5: 6: 7:
| Select a ,b ,c ,null kuenstliches_feld from Tabelle |
Nun möchte ich in Delphi (Version 7, DB- Verbindung aus historischen Gründen über BDE) in einer TQuery alle Felder hinzufügen.
Also zuerst in SQL (TStrings) das Statement reinkopiert.
Dann über den Feld- Explorer "Alle Felder hinzufügen" ausgewählt.
Es werden alle Felder hinzugefügt/angezeigt, bis auf das "künstliche" DB- Feld.
Warum wird mein künstliches Feld nicht hinzugefügt??
Danke schon mal im Voraus.
Gruß
Flons
Moderiert von
matze: Code- durch SQL-Tags ersetzt
Delete - Di 17.02.09 16:04
Vergib mal einen Alias auf das künstliche Feld.
Flons - Di 17.02.09 16:18
Hallo DeddyH,
SQL-Anweisung
1: 2: 3: 4: 5: 6: 7:
| Select a ,b ,c ,null kuenstliches_Feld from Tabelle |
Hier sollte "kuenstliches_Feld" doch der Alias sein ?!
Flons
Moderiert von
matze: Code- durch SQL-Tags ersetzt
Delete - Di 17.02.09 16:37
SQL-Anweisung
1: 2: 3: 4:
| SELECT a,b,c,NULL AS kuenstliches_Feld FROM Tabelle |
So ist kuenstliches_Feld der Alias, welcher NULL enthält. Das müsste eigentlich klappen.
Flons - Di 17.02.09 16:43
Hallo DeddyH,
ich habe (durch Zufall) die/eine Lösung gefunden:
Sobald ich einen "Wert" reinschreibe, geht es. Mit null um's Verrecken nicht.
SQL-Anweisung
1: 2: 3: 4: 5: 6: 7:
| Select a ,b ,c ,'yyy' kuenstliches_Feld from Tabelle |
Flons
Moderiert von
matze: Code- durch SQL-Tags ersetzt
alex517 - Di 17.02.09 16:57
Hi,
gib doch mal den Typ des Feldes mit an
SQL-Anweisung
1: 2: 3: 4: 5:
| Select a, b, c, CAST(NULL as VARCHAR(10)) kuenstliches_Feld from Tabelle |
alex
Flons - Mi 18.02.09 08:39
Hi Alex,
alex517 hat folgendes geschrieben : |
Hi,
gib doch mal den Typ des Feldes mit an
SQL-Anweisung 1: 2: 3: 4: 5:
| Select a, b, c, CAST(NULL as VARCHAR(10)) kuenstliches_Feld from Tabelle |
alex |
danke...
Genau so geht es!!!
You made my day! :dance2:
Gruß
Flons
Delete - Mi 18.02.09 10:06
Wobei sich mir der Sinn noch nicht erschließt. Wozu eine Spalte, in der immer NULL steht? Aber Du wirst schon wissen, was Du tust ;)
alex517 - Fr 20.02.09 10:57
DeddyH hat folgendes geschrieben : |
| Wobei sich mir der Sinn noch nicht erschließt. Wozu eine Spalte, in der immer NULL steht? Aber Du wirst schon wissen, was Du tust ;) |
- bei Union mit verschiedenen Tabellen als Platzhalter für nicht vorhandene Felder
z.B. Tabelle B hat kein Feld SubTyp:
SQL-Anweisung
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| select A.ID, A.Bez, A.Typ, A.SubTyp from A
union
select B.ID, B.Bez, B.Typ, CAST(NULL as INTEGER) from B |
- als Platzhalter bzw. als Kalkulationsfeld in der lokalen Datenmenge (CachedUpdates=true).
z.B. wenn im Programm die Daten mit mehreren Durchläufen verarbeitet werden und eine Markierung
je Datensatz notwendig ist oder als Berechnetes Feld OHNE das die Ergebnisse in die
Datenbank zurückgeschrieben werden.
SQL-Anweisung
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| SELECT P.ID, P.KUERZEL, P.GESAMT_PREIS , CAST(NULL as INTEGER) AS PPOS , CAST(NULL as NUMERIC(18,4)) AS SUMME FROM RPOSTEN P JOIN RECH R on (R.ID = P.RECH_ID) WHERE R.DATUM_BIS >= '01.01.2009' |
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28:
| procedure TForm1.Button1Click(Sender: TObject); var lSum: Currency; lPos: Integer; begin dbTemp.Open; dts.Open;
lSum := 0; lPos := 0; dts.CachedUpdates := true; while not dts.Eof do begin inc(lPos); lSum := lSum + dtsGESAMT_PREIS.AsCurrency; dts.Edit; dtsSUMME.AsCurrency := lSum; dtsPPOS.AsCurrency := lPos; dts.Post; dts.Next; end; dts.First; end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin dts.CancelUpdates; end; |
Ob das jetzt sinnvoll ist oder besser mit anderen Mittel lösbar ist eine andere Frage.:D
alex
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 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!