Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Stored Procedures ohne Rückgabewert (https://www.delphipraxis.net/41878-stored-procedures-ohne-rueckgabewert.html)

Hansa 10. Mär 2005 01:53

Datenbank: FB • Zugriff über: blub blub blub

Stored Procedures ohne Rückgabewert
 
Hi,

ich brauche Gruppen von Datensätzen, die über einen enzigen Parameter ausgewählt werden sollen. z.B.:
SQL-Code:
SELECT * FROM TABELLE WHERE EIGENSCHAFT =: PAR
Da soll also nichts berechnet werden und tja, ich brauche nur die Datensätze komplett, die in Frage kommen.

In meinem Source steht jetzt allerdings das alles im Klartext drin. Ohne Parameter. Wie soll ich das machen ? Mit SP klappt es nicht wie gewünscht. Bzw. weiß ich nicht, wie das geht. :mrgreen: Zu meinem Entsetzen habe ich soeben festgestellt, daß ich diese fast nur zum Speichern benutze. Na ja, ist schon spät. 8)

jensw_2000 10. Mär 2005 06:27

Re: Stored Procedures ohne Rückgabewert
 
Kenne die Besonderheiten von FB nicht, aber wie es beim MSSQL geht kann ich kurz erklären ...

SP auf dem SQL-Server erstellen ...
SQL-Code:
CREATE PROCEDURE Get_ArtikelByGruppe
 @Artgr INT =NULL -- [edit] Hier habe ich ein verirrtes Komma entfernt [/edit]
AS
  IF @ArtGr IS NULL
  BEGIN
    RAISEERROR('Die SP Get_ArtikelByGruppe benötigt den Parameter Artikelgruppe !',16,0,'ERROR')
  END
  ELSE BEGIN
    SELECT * FROM Artikel WHERE artGruppe=@Artgr
  END

Delphi:

Delphi-Quellcode:
   // schnell hingetippt, sollte aber stimmen ..
   AdoStroredProc.close;
   AdoStroredProc.Procedurename:='Get_ArtikelByGruppe'; // SP auswählen
   AdoStroredProc.Parameters.refresh; // Parameter-"Platzhalter" holen
   AdoStroredProc.Parameters[1].Value:=1; // Parameter setzen
   AdoStroredProc.open; // SP öffnen

:hi:

Hoffentlich hilft es ein bisschen ...

Schöne Grüße,
Jens

lume96 10. Mär 2005 07:13

Re: Stored Procedures ohne Rückgabewert
 
Moin Hansa,

'ne SP die ein Dataset zurückgibt könnte/würde bei FB etwa so aussehen :

SQL-Code:
CREATE PROCEDURE NEW_SP (
    INPUT_ID INTEGER
    )
RETURNS (
    OUT_FIELD1 INTEGER,
    OUT_FIELD2 varchar(50)
    )
AS
BEGIN
  for
     select int_field, varchar_field from table1
     where table1_id = :input_id
     into :out_field1, :out_field2
  do
    SUSPEND;
END
Tschüss,
Lutz


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:48 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