Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi 2 Stored Procedures oder eine ? (https://www.delphipraxis.net/15454-2-stored-procedures-oder-eine.html)

Hansa 29. Jan 2004 01:06


2 Stored Procedures oder eine ?
 
folgendes Problem:

ich muß überprüfen, ob ein Datensatz in einem bestimmten Bereich existiert. De User gibt also eine Zahl ein. Dann soll überprüft werden, ob diese Eingabe in einem zulässigen Bereich liegt. Jetzt habe ich überlegt, zunächst einmal den Bereich zu checken und danach mal nachzusehen, ob der Datensatz bereits da ist. Erschwerend kommt hinzu, daß die Eingabe über den Masterdatensatz läuft und der Rest über einen Detaildatensatz abgeklärt werden muß.

SQL-Code:
ALTER PROCEDURE INTPROCEDURE
RETURNS (
    TEST INTEGER)
AS
begin
  SELECT G.ID FROM G8 G JOIN GSTAT8 GS ON
         G.ID = GS.ID_G WHERE (G.NR >= :MIN)
INTO :TEST;
So geht es nicht !!! 8) Und bitte nicht vor Freitag hauen. *duck*

negaH 29. Jan 2004 02:35

Re: 2 Stored Procedures oder eine ?
 
SQL-Code:
select
  Count(D.ID) as Anzahl
from
  Detail D
where
  (D.Master_ID = :MasterID) and
  (D.Nr beetween :MIN and :MAX)
?

Gruß Hagen

Hansa 29. Jan 2004 18:52

Re: 2 Stored Procedures oder eine ?
 
Zitat:

Zitat von negaH
SQL-Code:
select
  Count(D.ID) as Anzahl
from
  Detail D
where
  (D.Master_ID = :MasterID) and
  (D.Nr beetween :MIN and :MAX)

Das sieht gut aus und ist so knapp wie nötig. Allerdings noch 2 Sachen: D.NR gibt es nicht. Der Master hat eine NR, das Detail D nur einen Verweis über ID. Deshalb habe ich vorher ja das JOIN bemüht. Aber etwas wichtigeres:

SQL-Code:
begin
  select COUNT (ID) AS ANZAHL FROM D
end;
Schon das scheint syntaktisch falsch zu sein. Zumindest meckert der Parser und ich sehe nicht, warum. 8)

negaH 31. Jan 2004 10:06

Re: 2 Stored Procedures oder eine ?
 
Ich nutzte Local SQL = BDE um eine eventuell funktionierende Idee zu vermitteln, inwieweit du das auf deinen SQL Dialekt abändern musst weis ich nicht.

Das "from Detail D" bezog sich auf deine Detail Tabelle.

Select Count(xyz) as Anzahl sollte eine Abfrage erzeugen mit nur einem Datensatz und einem einzigsten Feld "Anzahl". Darin steht die Anzahl der gefundenen Detail Datensätze zum Master Datensatz mit ID = MasterID deren Nummer Nr zwischen Min und Max liegt.

Statt also eine Stored Procedure zu benutzten würde ich eine normale SQL benutzen.

Gruß Hagen

Hansa 31. Jan 2004 13:25

Re: 2 Stored Procedures oder eine ?
 
Daß mir so was passiert. Da kann man machen was man will und macht immer noch Anfängerfehler. :lol: Die Parameter dürfen natürlich nicht MIN und MAX heißen. Diese identifier sind vordefiniert. Deshalb konnte ich machen was ich will, es konnte einfach so nicht gehen. Die Interbase-Fehlermeldungen waren aber auch so was von nichtssagend... :P


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:49 Uhr.

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