|
|
||||||
|
#1
|
|
|
|
|
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 |
|
|
|
#2
|
|
|
|
|
Hallo Christian,
ich würde dir das Filtern deiner Daten im Speicher mit ADO.NET empfehlen. http://msdn.microsoft.com/de-de/library/bb979485.aspx Dieser Weg ist weitaus flexibler, performanter und transparenter, weil du alle Logik-Operationen im Code erledigen kannst. Gruß Markus "Christian Mauerer" <info1> schrieb im Newsbeitrag news:4292 [..] |
|
#3
|
|
|
|
|
Man kann keine Tabellen an Stored Procedures in SQL Server 2005 übergeben.
Ich mache es immer so, dass ich eine komma-separierte Liste als varchar übergebe. In der Stored Procedure kann man dann die Liste sehr schnell mit einer Funktion in eine Tabelle umwandeln. Du brauchst also 2 Dinge: etwas C# Code, der dir eine komma-separierte Liste a la "a,b,c,d" aus einer Collection erzeugt, der ist ja leicht zu schreiben. Und die Funktion in T-SQL ist hier beschrieben: http://codebank.wordpress.com/2007/0...sv-to-table-2/ Es gibt auch noch aufwändigere Möglichkeiten. oder man verwendet XML wie in http://www.sqlservercentral.com/arti...ocedures/2977/ |
|
|
| Ähnliche Themen | |
| gespeicherte Prozeduren Hallo..., wie kann ich Sp auf einen anderen SQL-Server einsetzen ohne diese wieder neu zu schreiben? Danke MfG Hans-Jürgen |
|
| Gespeicherte Prozeduren aufrufen Hallo, ich habe eine gespeicherte Prozedur in meiner Datenbank (Oracle), die ich jetzt aus Java aurufen möchte. Die Prozedur heisst to_read und hat zwei IN-Parameter. Ich... |
|
| gespeicherte Prozeduren wenn ich von verschiedenen applikation auf die gleiche datenbank zugreifen will, dann sollte man sperren, update, insert delete und die @@error abfragen in gespeicherte... |
|
| Gespeicherte Prozeduren Hallo Leute, ich verwende in meinen Datenbankapplikationen viel gespeicherte Prozeduren. Wenn mehrere User gleichzeitig auf die gleiche Prozedur zugreifen, bekomme ich aber... |
|
|
Alle Zeitangaben in WEZ. Es ist jetzt 03:22 Uhr. | Privacy Policy
|