Zitat von
Panthrax:
Ist
MSSQL damit so "gut" oder
MySQL so "schlecht"? Können das auch anderen
DBMS außer
MSSQL? -- Vielleicht lohnt sich ja ein Wechsel...?
Deine Vorgehenweise ist für eine Datenbank unbrauchbar, da ist es nicht nötig, über Vorteile oder Nachteile verschiedener Systeme zu spekulieren. Du kannst in einer Datenbank die Funktionen/Prozeduren nicht (ganz) so einsetzten, wie du es in einer Programmiersprache kannst. Eingeschränkt ist dies zwar möglich, aber genau dein jetziger Ansatz ist problematisch. Er ist nicht unmöglich (zu mindest in
MSSQL) aber er schränkt dich eigentlich mehr ein, als du Vorteile davon hast (bedingt durch die Nachteile denen man unterliegt, weil in Funktionen nicht alles geht und weil, wenn man als Rückgabewert eine Tabellenstruktur angibt, diese nicht dynamisch zusammengestellt werden kann, die Geschwindigkeit erwähne ich erst gar nicht, die ist dann richtig unterirdisch!).
Eine andere Möglichkeit wäre eine temporäre Tabelle zu benutzen, dies führt allerdings bei Mehrbenutzerbetrieb zu Problemen, deshalb solltest du alles in deine Funktionen einbauen. Oder vielleicht über einen Übergabeparameter festlegen, was du berechnen willst, dann ist das Datensammeln nur einmal zu implementieren.
Wie auch immer, da du hier nur schreibst wie du dein Problem lösen willst und nicht was du eigentlich erreichen willst, kann man dir auch keinen (richtigen) alternativ Vorschlag machen.
Zitat von
mkinzler:
Mehrere Datensätze wären Z.B. in
IB/
FB kein Problem; jeder Aufruf von
suspend;
liefert einen Datensatz zurück.
Auch aus einer UDF? Das wäre mir neu, aber das wäre genial.