Moin,
ich suche nach einer eleganten Lösung für folgende Aufgabenstellung:
Ich habe zum Beispiel eine Tabelle Lieferadressen von Kunden
mit 20 Feldern.
Eindeutigt sind hier KULA_A_ KUNDENNR + KULA_N_LFDNR
Jetzt will ich diese Tabelle View oder prozedurgesteuert zurückgeben.
Normal würde man sagen
'Select * from Lieferanschriften where KULA_A_ KUNDENNR = :kunde'
Jetzt würde ich aber gern in Abhängigkeit vom User hier direkt eine Suche einbauen. Also wenn der Benutzer einen Suchbegriff eingegeben hat dann
soll da stehen:
'Select * from Lieferanschriften where KULA_A_ KUNDENNR = :kunde
and ( upper(KULA_A_NAME1) containing :such or upper(KULA_A_NAME2) containing :such)'
Das erst mal zur Problemstellung. Sicher kann man die Abfrage schon in Delphi einsetzen aber ich wollte das ganze über View oder Prozedur steuern.
Jetzt zum Problem:
Ich bin faul !
Wenn ich das Ganze über eine Prozedur mache, muss ich die 20 Felder als
Ausgabeparameter anlegen. Weiterhin muss ich die Prozedur immer anpassen,
wenn ich an der Tabelle was ändere. Is also der Stress vorprogrammiert.
(mir geht es um eine generelle Lösung, nicht nur um die eine Tabelle...)
Wenn das ganze über eine View laufen könnte (dort brauche ich ja nur select * zu machen), dann muss ich aber Variablen an die View übergeben.
Im oberen Fall die Kundennummer und den Suchbegriff.
und dann müsste ich in die Bedingungsklausel der View
ein Konstukt wie unten reinbringen.
where
kula_a_kundnr = :kunde
and
iif(:such is null, True, upper(kula_a_name1) containing or :such upper(kula_a_name2) containing :such)
oder so ähnlich.
Geht aber net, weil ich keine Variablen rüberbringe.
Arbeite aktuell noch mit dem FB 2.0 könnte aber auch endlich
mal den 2.1 einsetzen... ( siehe Ausgangsproblem )
Kann mich jemand auf die richtige Bahn führen ?
Grüße und Danke im Voraus..
ich suche nach einer eleganten Lösung für folgende Aufgabenstellung:
Ich habe zum Beispiel eine Tabelle Lieferadressen von Kunden
mit 20 Feldern.
Eindeutigt sind hier KULA_A_ KUNDENNR + KULA_N_LFDNR
Jetzt will ich diese Tabelle View oder prozedurgesteuert zurückgeben.
Normal würde man sagen
'Select * from Lieferanschriften where KULA_A_ KUNDENNR = :kunde'
Jetzt würde ich aber gern in Abhängigkeit vom User hier direkt eine Suche einbauen. Also wenn der Benutzer einen Suchbegriff eingegeben hat dann
soll da stehen:
'Select * from Lieferanschriften where KULA_A_ KUNDENNR = :kunde
and ( upper(KULA_A_NAME1) containing :such or upper(KULA_A_NAME2) containing :such)'
Das erst mal zur Problemstellung. Sicher kann man die Abfrage schon in Delphi einsetzen aber ich wollte das ganze über View oder Prozedur steuern.
Jetzt zum Problem:
Ich bin faul !
Wenn ich das Ganze über eine Prozedur mache, muss ich die 20 Felder als
Ausgabeparameter anlegen. Weiterhin muss ich die Prozedur immer anpassen,
wenn ich an der Tabelle was ändere. Is also der Stress vorprogrammiert.
(mir geht es um eine generelle Lösung, nicht nur um die eine Tabelle...)
Wenn das ganze über eine View laufen könnte (dort brauche ich ja nur select * zu machen), dann muss ich aber Variablen an die View übergeben.
Im oberen Fall die Kundennummer und den Suchbegriff.
und dann müsste ich in die Bedingungsklausel der View
ein Konstukt wie unten reinbringen.
where
kula_a_kundnr = :kunde
and
iif(:such is null, True, upper(kula_a_name1) containing or :such upper(kula_a_name2) containing :such)
oder so ähnlich.
Geht aber net, weil ich keine Variablen rüberbringe.
Arbeite aktuell noch mit dem FB 2.0 könnte aber auch endlich
mal den 2.1 einsetzen... ( siehe Ausgangsproblem )
Kann mich jemand auf die richtige Bahn führen ?
Grüße und Danke im Voraus..
Comment