Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Was sind stored procedures? (https://www.delphipraxis.net/39159-sind-stored-procedures.html)

Luckie 29. Jan 2005 15:53


Was sind stored procedures?
 
Ich habe jetzt selbts mit der Datenbankprogrammierung angefangen und jetzt frage ich mich, was stored procedures sind?

mirage228 29. Jan 2005 15:55

Re: Was sind stored procedures?
 
Zitat:

Zitat von Luckie
Ich habe jetzt selbts mit der Datenbankprogrammierung angefangen und jetzt frage ich mich, was stored procedures sind?

Da sind sowas wie Prozeduren in Delphi. Damit kannst Du bestimmte Abläufe vereinfachen. :)
Aber MySQL kann es imho noch nicht.

mfG
mirage228

Robert_G 29. Jan 2005 15:56

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.

Luckie 29. Jan 2005 15:57

Re: Was sind stored procedures?
 
Aha. Danke das war es dann auch schon. :thumb:

Marcel Gascoyne 29. Jan 2005 18:19

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

Robert_G 29. Jan 2005 19:06

Re: Was sind stored procedures?
 
und damit der Luckie auch mal einen kleinen, abstrakten Bleistift zu Gesicht bekommt. ;)
SQL-Code:
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;
Das Ganze war jetzt PL/SQL. Meiner Meinung nach sieht es aus wie ein Kreuzung zwischen C, Pascal und SQL.
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...

Hansa 29. Jan 2005 19:34

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

Robert_G 29. Jan 2005 19:38

Re: Was sind stored procedures?
 
Zitat:

Zitat von Hansa
... 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

Naja, so abschreckend ist es sicher nicht.
Wenn man sich so hässliche Sprachen wie T-SQL anguckt (@...@...@@@@...@@.@@@@....@ :mrgreen: ), dürfte PL/SQL für einen Delphianer noch recht lesbar sein. ;)

Hansa 29. Jan 2005 20:13

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.

Sharky 30. Jan 2005 12:34

Re: Was sind stored procedures?
 
Zitat:

Zitat von mirage228
....Aber MySQL kann es imho noch nicht....

Sollte die Version 5 können.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:35 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz