![]() |
Was sind stored procedures?
Ich habe jetzt selbts mit der Datenbankprogrammierung angefangen und jetzt frage ich mich, was stored procedures sind?
|
Re: Was sind stored procedures?
Zitat:
Aber MySQL kann es imho noch nicht. mfG mirage228 |
Re: Was sind stored procedures?
Daa sind Funktionen, die in der Datenbank kompiliert abgelegt werden (bei manchen auch nur der Text).
Sie laufen im Prozess der DB und haben auch eine Syntax, die Datenmaipulationen stark vereinfacht. |
Re: Was sind stored procedures?
Aha. Danke das war es dann auch schon. :thumb:
|
Re: Was sind stored procedures?
Beim Speichern von Stored Procedures werden diese in der Regel nicht nur compiliert sondern auch optimiert. Die Datenbank weiss dann beim Aufruf gleich welche Indices verwendet werden müssen. Gerade in großen Datenbanken bringt dies einiges an Performancesteigerung.
Neben diesen normalen Procedures gibt es auch noch Trigger die Ereignisgesteuert ausgeführt werden, um z.b. einen Datensatz nach einem Insert oder Update noch zu manipulieren. Gruß, Marcel |
Re: Was sind stored procedures?
und damit der Luckie auch mal einen kleinen, abstrakten Bleistift zu Gesicht bekommt. ;)
SQL-Code:
Das Ganze war jetzt PL/SQL. Meiner Meinung nach sieht es aus wie ein Kreuzung zwischen C, Pascal und SQL.
create procedure SomeProcedure(aSomeValue in integer) is
/* eine Konstante */ Tab constant char(1) := Chr(9); /* Ein cursor, der einen Parameter nimmt und mit diesem Daten abfragt */ cursor SelectSomething(iParameter in integer) is SELECT * FROM XYZ WHERE SomeColumn = iParameter; /* ein Collection typ, bei der ein Element dem Typen einer Zeile des Cursors (und damit der Abfrage) entspricht */ type TSomeCollection is table of SelectSomething%RowType; /* eine Variable dieser collection */ SomeCollection TSomeCollection; /* ein Record mit Defninition siehe Collection ELement */ SomeRecord SelectSomething%RowType; begin /* cursor öffnen und Abfrage vorbereiten */ open SelectSomething(aSomeValue); /* Inhalt der Abfrage in die Collection schieben */ fetch SelectSomething bulk collect into SomeCollection; /* Abfrage schließen */ close SelectSomething; /* durch die Ergebnisse laufen (wenn es Datensätze gibt)*/ if SomeCollection.Count > 0 then for i in SomeCollection.First .. SomeCollection.Last loop /* aktuelles Element in den Record kopieren */ SomeRecord := SomeCollection(i); /* in die Kommandozeile ausgeben */ DBMS_Output.Put_Line((i + 1) || Tab || SomeRecord.Column1 || Tab || SomeRecord.Column2); end loop; end if; end; Jede DB bringt ihre eigene Sprache mit. (MS SQL Server: T-SQL, InterBase/FireBird: PSQL, mySQL: nix :P ) Und alle sind komplett anders. :freak: Edit: Tippfähler... |
Re: Was sind stored procedures?
... womit Robert_G zunächst mal ein abschreckendes Beispiel für Oracle präsentiert hat. :mrgreen: Kein Wunder, daß Luckie mit DBs vorher nichts am Hut hatte. :P
|
Re: Was sind stored procedures?
Zitat:
Wenn man sich so hässliche Sprachen wie T-SQL anguckt (@...@...@@@@...@@.@@@@....@ :mrgreen: ), dürfte PL/SQL für einen Delphianer noch recht lesbar sein. ;) |
Re: Was sind stored procedures?
Luckie, das ist doch alles ganz einfach. Lasse dich nicht damit verwirren, das seien Prozeduren in Delphi. Mit MySQL das ist allerdings so ziemlich das schlechteste, was in Betracht kommt. Zumindest für Anfänger.
Was das genau ist, das hat sowieso noch keiner gesagt. Also, das ist eben eine Prozedur. :mrgreen: Und die wird in der DB gespeichert. Von Delphi aus ruft man die eben auf, wie eine normale Prozedur auch. Aber ich merke, so wird das nichts. Hier ein Bsp.: // zu früh, bringt nichts. Zuerst einmal gibt es SP ohne Rückgabewerte. Die benutze ich immer, um etwas abzuspeichern. D.h. es werden aus dem Delphi-Programm heraus Parameter übergeben an die SP und diese setzt sie dann in der SP ein und führt Berechnungen oder Aktionen aus. Manchmal braucht man auch Rückgabewerte von der SP. An die kommt man dann dran mit "Select * From LuckieSP". [Edit]Beispiel entfernt. |
Re: Was sind stored procedures?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:07 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz