Hallo!

> ...aber was ist, wenn ich vorher nicht weiss, welche Felder jeweils
> abzufragen sind ? (Je nach dem, welche Kriterien der user angeklickt
hat)

Deshalb funktioniert die Variante auch nur, wenn keine NULL-Werte in den
Daten auftauchen, die Bool-Werte also nur 1 (angekreuzt) oder 0 (nicht
angekreuzt) enthalten.

Ansonsten musst Du den SQL-Befehl innerhalb der SP aufbauen und
ausf�hren. Anleitungen dazu gibt es in der Online-Dokumentation zum
SQL-Server.

F�r eine komplexe Suchabfrage braucht's selbstverst�ndlich sehr
unterschiedliche SQL-Statements. Um das einigerma�en zu standardisieren
kann man mit "BETWEEN ... AND ..." oder mit mehreren Suchprozeduren
arbeiten. Was in Deinem Fall g�nstiger ist, kann ich nicht beurteilen.

Eine Suche ist dann schnell, wenn die Kriterien in optimierter
Reihenfolge eingesetzt werden: Je schneller Du die Datenmenge durch
indiziertes Suchen verkleinern kannst, desto besser. Also zun�chst die
Kriterien mit Index-Identit�t, dann Index-Relation und zum Schluss die
Teilmengensuche mit �hnlichkeiten und "LIKE '%...%'". Irgendwann kommt
bei so einer komplexen Suche auch mal der Punkt, wo Indizes sich negativ
auswirken.

> Die Variante ohne "dynamisches" SQL ...
> 
> Create Procedure Suchen
>    @K1 bool,
>    @K2 bool,
>    @K3 bool
> AS
>    SELECT *
>    FROM fahrzeuge
>    WHERE K1 = @K1 AND K2 = @K2 AND K3 = @K3
> 
> ... funktioniert nur, wenn die Felder wirklich 0 oder 1 enthalten,
also
> in keinem Fall den Wert NULL. Wenn das gegeben ist, spricht nichts
gegen
> die SP.

Freundliche Gr��e
Joachim van de Bruck


| [aspdedatabase] als [email protected] subscribed
| http://www.aspgerman.com/archiv/aspdedatabase/ = Listenarchiv
| Sie k�nnen sich unter folgender URL an- und abmelden:
| http://www.aspgerman.com/aspgerman/listen/anmelden/aspdedatabase.asp

Antwort per Email an