yo,
grundsätzlich hat eine view keine parameter in der art wie sie bei einer funktion oder eine prozedur vorhanden sind. eine view ist eine gespeicherte abfrage in der datenbank. "technisch" wird die view wie eine tabelle benutzt und nicht wie eine funktion. view und funktion sind also erst mal zwei getrennte paar schuhe. mal ein beispiel für den aufruf einer view "test_view".
SELECT spalte1_der_view, spalte2_der_view, etc.
FROM test_view
;natürlich kann man die view auch mit anderen tabellen kombieren oder sogar mit weiteren views. wenn du die view hast, kannst du darin die funktion einbauen, entweder direkt in der view oder eben ausserhalb, je nachdem was du erreichen willst. und natürlich kann man dann auch nach dem wert, den die funktion zurück gibt, sortieren.
Ilja
Danke, ich weiß nun, das ich Stored Function brauche.
Ein nicht triviales Problem ist, das eigentlich 5 Functions aufgerufen werden müssen. Was mir dabei nicht gefällt ist, das erst die 5. Funktion das beste Ergebnis von Function 1..4. Ale Ergebnisse sind aber wichtig und sollen ihren Platz in einer Weiterverwertung haben.
Die eigentliche Aufgabe ist, die beste Verlegeart für ein jeweiliges Solarmodul zu finden, auf einer Basis zu übergebender Parameter des Daches, Modulabstände zum Dachrand von oben, unten und jeweils auch seitlich, sowie Modulabstand.
Die Datenbank hat im Endausbau ca. 10000 Module. Diese können mintestends auf 4 Arten verlegt werden. Eigentlich müßte ich 40000 Ergebnisse zur Verfügung stellen. Ich werde aber versuchen, die Ergebnisse irgendwie in einem String zusammenzufassen, wobei zusätzlich der höchste errechnete Wert dem String nochmal vorangestellt wird, damit eine Sortierung einfacher zustandekommen kann.
Zusammenfassend dachte ich, ich könnte einem View alle Parameter mitgeben, und diesen die 4 Function ausführen lassen und die Rückgabe entsprechend zusammenbauen.
Ich überlege, ob dies auch mit einer Quasi-Masterfunktion gemacht werden kann die die anderen Funktionen bedient und das Ergebnis zusammenstellt. Dann brauche ich nur diese einmal im Select mit einbauen, und der Frosch hat schon mal ein paar Locken ;-)
Den zurückgegebenen Wert kann ich anschließend in PHP wieder aufdröseln und
entsprechend.
Problematik hierbei ist allerdings, das z.B. bei allen Ergebnisse für Modul1 dieses an 1. 3. 7. 8. Stelle einsortiert würde. Modul2 an 2. 4. 5. 6. Stelle.
Würde ich nun 8 Datensätze haben, könnte ich einwandfrei ausgeben.
Habe ich aber nur 2, verschwinden die Positionen 3..8.
Denke, ich brauche erstmal eine Kanne Kaffee und ein Pfund Bananen ;-)
Bisp Joe