Gespeicherte Prozeduren integrieren

21/07/2008 - 12:50 von Christian Mauerer | Report spam
Hallo,

ich habe ein Problem in meiner aktuellen Anwendung.
Hier ist es so, dass doch recht komplexe Datenbankabfragen durchgeführt
werden.
Als Datenbank verwende ich den SQL-Server 2005.

Der User hat die Möglichkeit, verschiedene Filterdaten einzugeben.
Dann wird anhand dieser Filterdaten die Datenbank abgefragt.
Das es unterschiedliche Eingaben für die Abfrage gibt,
setzte ich den SQL-String zur Laufzeit zusammen.
Soweit klappt das nun ganz gut.

Nun ist es aber so, dass noch für die oben genannten Rückgabedaten Summen
berechnet werden müssen.
Und zwar auch anhand der Eingaben.
Ich würde es nun gerne so machen, dass ich eine gespeicherte Prozedur
schreiben.
Diese gespeicherte Prozedur làuft die abgefragen Daten der Reihe nach durch
und berechnet die Summen und
erweitert die zuvor abgefragten Daten eben um diese Summen.

Nun mein Problem.
Ist es möglich, dass ich eine gespeicherte Prozedur aufrufe und dabei eine
DataTable übergebe, welche dann in der gespeicherten Prozedur abgearbeitet
wird?

Ich weiß, es jetzt kommt der Einwand: Warum integrierst du nicht gleich die
1. Abfrage auch in die gespeicherte Prozedur. Nun das mache ich im Moment
aus folgendem Grund nicht. Der SQL-String muss anhand der Usereingaben
zusammengesetzt werden. Somit steht erst zur Laufzeit fest, wie abgefragt
wird. Und das macht doch keinen Sinn, in eine gespeicherte Prozedur zu
integrieren, oder?

Bin auch für Alternativen Dank.

Vielen Dank und schöne Grüße

Christian
 

Lesen sie die antworten

#1 Markus Radtke
25/07/2008 - 23:32 | Warnen spam
Hallo Christian,

ich würde dir das Filtern deiner Daten im Speicher mit ADO.NET empfehlen.

http://msdn.microsoft.com/de-de/lib...79485.aspx

Dieser Weg ist weitaus flexibler, performanter und transparenter, weil du
alle Logik-Operationen im Code erledigen kannst.

Gruß
Markus


"Christian Mauerer" schrieb im Newsbeitrag
news:#A1bp#
Hallo,

ich habe ein Problem in meiner aktuellen Anwendung.
Hier ist es so, dass doch recht komplexe Datenbankabfragen durchgeführt
werden.
Als Datenbank verwende ich den SQL-Server 2005.

Der User hat die Möglichkeit, verschiedene Filterdaten einzugeben.
Dann wird anhand dieser Filterdaten die Datenbank abgefragt.
Das es unterschiedliche Eingaben für die Abfrage gibt,
setzte ich den SQL-String zur Laufzeit zusammen.
Soweit klappt das nun ganz gut.

Nun ist es aber so, dass noch für die oben genannten Rückgabedaten Summen
berechnet werden müssen.
Und zwar auch anhand der Eingaben.
Ich würde es nun gerne so machen, dass ich eine gespeicherte Prozedur
schreiben.
Diese gespeicherte Prozedur làuft die abgefragen Daten der Reihe nach
durch und berechnet die Summen und
erweitert die zuvor abgefragten Daten eben um diese Summen.

Nun mein Problem.
Ist es möglich, dass ich eine gespeicherte Prozedur aufrufe und dabei eine
DataTable übergebe, welche dann in der gespeicherten Prozedur abgearbeitet
wird?

Ich weiß, es jetzt kommt der Einwand: Warum integrierst du nicht gleich
die 1. Abfrage auch in die gespeicherte Prozedur. Nun das mache ich im
Moment aus folgendem Grund nicht. Der SQL-String muss anhand der
Usereingaben zusammengesetzt werden. Somit steht erst zur Laufzeit fest,
wie abgefragt wird. Und das macht doch keinen Sinn, in eine gespeicherte
Prozedur zu integrieren, oder?

Bin auch für Alternativen Dank.

Vielen Dank und schöne Grüße

Christian


Ähnliche fragen