Autor Beitrag
mexx
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1183



BeitragVerfasst: Fr 01.12.06 14:00 
Eine Firebird-DB hat die Fähigkeit Trigger und Proceduren zu realisieren, die direkt in der DB arbeiten. Die Syntacs ist eine Mischung aus SQL und Delphi. Ich möchte nun eine Art Case-Anweisung dort verwenden. Verwende ich aber die Delphi-Syntacs, so verwende ich reservierte Zeichen an den falschen Stellen. Wer kennt sich noch mit den Firebird-Proceduren aus und weiss, wie man eine Art Case-Anweisung realisiert?

_________________
Das Unsympathische an den Computern ist, dass sie nur ja oder nein sagen können, aber nicht vielleicht.
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: Fr 01.12.06 14:05 
Wie komplex sind die caseanweisungen? U.U. reicht IIF
sonst

ausblenden SQL-Anweisung
1:
2:
3:
4:
5:
6:
case
 when ... then
 when ... then
 ...
 else
end

_________________
Markus Kinzler.


Zuletzt bearbeitet von mkinzler am Fr 01.12.06 14:09, insgesamt 1-mal bearbeitet
mexx Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1183



BeitragVerfasst: Fr 01.12.06 14:09 
Unterschiedlich. Ich habe jetzt keine genaue Aufgabe. Ist eher eine allgemeine Frage. Bisher habe ich es über komplexe if-Anweisungen lösen können, aber das ist keine Lösung, wenn man 10 Bedingungen hat.

_________________
Das Unsympathische an den Computern ist, dass sie nur ja oder nein sagen können, aber nicht vielleicht.
mexx Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1183



BeitragVerfasst: Fr 01.12.06 15:40 
Der Befehl case ist jedoch unbekannt. Ich glaube, dass es sicherlich etwas wie eine case-Anweisung gibt, aber nicht mit den Befehl "case".

_________________
Das Unsympathische an den Computern ist, dass sie nur ja oder nein sagen können, aber nicht vielleicht.
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: Fr 01.12.06 15:56 
Zeig mal den Trigger-Code

_________________
Markus Kinzler.
mexx Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1183



BeitragVerfasst: Fr 01.12.06 16:09 
Es gibt keinen. Es geht mir allgemein darum. Wie kann ich eine Anweisung formulieren, die in einer case-Anweisung ähnelt, weil eine IF-Anweisung mit unterschiedlichen Bedingungen, welche unterschiedliche Ereignisse auslösen zu komplex und unsauber werden, wenn man es zu sehr verschachtelt.

_________________
Das Unsympathische an den Computern ist, dass sie nur ja oder nein sagen können, aber nicht vielleicht.
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: Fr 01.12.06 16:11 
Welche Version von FB setzt du ein? Ab 1.5 wird case ja unterstützt.

_________________
Markus Kinzler.
mexx Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1183



BeitragVerfasst: Fr 01.12.06 16:24 
Ja, >1.5. auf jeden Fall.

Gib mir mal ein Beispiel von einer Case-Anweisung in Firebird.

Uppps: Größer als 1.5.!

_________________
Das Unsympathische an den Computern ist, dass sie nur ja oder nein sagen können, aber nicht vielleicht.
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: Fr 01.12.06 16:38 
ausblenden SQL-Anweisung
1:
select case sh when 'S' then 'Soll' else 'Haben' end from Buchung;					

_________________
Markus Kinzler.