Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Zeos - Stored Procedur (https://www.delphipraxis.net/32095-zeos-stored-procedur.html)

monta 18. Okt 2004 16:43


Zeos - Stored Procedur
 
Hi,

ich wollte über eine Stored Procedure einen Datensatz Speichern (Firebird 1.5). Bei der Stored Procedur hab ich dafür mehrere Eingabeparameter festgelegt:

SQL-Code:
SET TERM ^ ;

CREATE PROCEDURE NEW_PROCEDURE (
    BESTIMMUNG BLOB SUB_TYPE 0 SEGMENT SIZE 80,
    NUMMER SMALLINT,
    ...usw.
Diese Stored Procedure wollte ich über Delphi mit der Zeoskomponenten TZIBSqlStoredProc (Zeos Version 5.4) ansteuern. Doch an diesem Punkt weis ich absolut nicht weiter. :wiejetzt:

Wie kann ich die in der SP deklarieten Eingabewerte übergeben?

[edit=Admin]SQL-Tags korrigiert. Mfg, Daniel[/edit]

Stevie 18. Okt 2004 17:01

Re: Zeos - Stored Procedur
 
Erstmal herzlich willkommen in der DP! :party:
Die Komponente verfügt über die Eigenschaft Params, da schreibst du deine Werte rein.

monta 19. Okt 2004 00:06

Re: Zeos - Stored Procedur
 
Danke für den schnellen Tip aber ich komme immer noch nicht recht zurecht.
Ich ging immer davon aus man könne die Übergabeparameter zur Entwurfszeitbereits festlegen aber wie? Auf die Eigenschaft Params im Objektinspektor kann man ja nicht direkt zugreifen.
Nun gut, habe halt erst mal die Parameter zur Laufzeit übergeben mit:

Delphi-Quellcode:
[code:1:cdf485aa6d] with StoredProc do //TZIBSqlStoredProc
  begin
    Params.CreateParam(ftBlob, 'Bestimmung', ptInput);
    ParamByName('Bestimmung').Value := MemoBestimmung.Text;
    Params.CreateParam(ftSmallint, 'Nummer', ptInput);
    ParamByName('Nummer').Value := EdId.Text;
    ...usw
    StoredProcName := 'New Procedure';
    ExecProc;
  end;[/code:1:cdf485aa6d]
(ist vielleicht nicht die beste Zuweisung aber sollte doch hoffentlich funktionierne)
Jedoch bekomme ich beim starten mit ExecProc die Fehlermeldung: EDatabaseError...Meldung:'is not selected Proc' :wall: Woran liegt das nun? Oder liegt es an der Zuweisung?

P.S.Hät ich gewusst wie kompliziert Stored Proceduren sind hät ichs gelassen :?

Stevie 19. Okt 2004 07:15

Re: Zeos - Stored Procedur
 
- Wenn du die '...' in Feld Params drückst, kommt ein kleines Fenster, wo du die Parameter festlegen kannst...
- Seit wann können Prozedurnamen auf der Datenbank Leerzeichen enthalten??? :gruebel:
P.S Vielleicht hast du dich auch nur vertippt...
Zitat:

Zitat von monta
SQL-Code:
CREATE PROCEDURE NEW_PROCEDURE

Zitat:

Zitat von monta
Delphi-Quellcode:
StoredProcName := 'New Procedure';


monta 19. Okt 2004 11:58

Re: Zeos - Stored Procedur
 
In dem Feld Params bzw. daneben sind bei mir keine '...' Auch wenn ich auf dasFeld Doppelklicke passiert nichts. Warum kann man bei ZEOS auf die Eigenschaft Params nicht zugreifen, währenddesen das bei der von Borland mitgelieferten SP-Komponente funktionier?
(Fehler der ZEOS-Komponeten???)

Zitat:

Seit wann können Prozedurnamen auf der Datenbank Leerzeichen enthalten???
Gute Frage :gruebel: kleiner Fehler meinerseits.

Stevie 19. Okt 2004 12:11

Re: Zeos - Stored Procedur
 
:shock: Ach Mist, bin wieder blind! Du verwendest ja die Version 5.4 von ZEOS!
Spricht irgendetwas dagegen, die neueste stabile Version (6.1.5) zu benutzen??

monta 19. Okt 2004 13:07

Re: Zeos - Stored Procedur
 
Zitat:

Spricht irgendetwas dagegen, die neueste stabile Version (6.1.5) zu benutzen??
Ja leider, Zeos 6 unterstützt meiner Meinung nach nur Delphi4 aufwärts :cry: (ich hab D3)
Allerdings könnte ich von 5.4.0-gamma auf Zeosdbo 5.5.0 stable umsteigen.
Das werd ich vielleicht mal probieren.

Domo Sokrat 19. Okt 2004 21:13

Re: Zeos - Stored Procedur
 
Hi monta, hi Stevie (again :mrgreen:),

ich hab' mich vor geraumer Zeit auch mal mit den ZEOS 5.5 und D3 rumgeschlagen (siehe hier, ziemlich weit unten). Versuche mit der Storedproc-Komponente haben in Verbindung mit Firebird ergeben, dass sie im Prinzip unbrauchbar ist. Bei Firebird, z. B. konnten die Storeprocs nur über eine Query-Komponente mit dem Statement "EXECUTE PROCEDURE ..." aufgerufen werden, z. B.

Code:
EXECUTE PROCEDURE ADD_EMP_PROJ (:emp_no, :proj_id)
Die Parameter emp_no und proj_id wären hier dann die Parameter des Query-Objekts und würden auch genau so wie Query-Parameter behandelt werden.

So! Und jetzt: Gute Nacht! :hi:

monta 23. Okt 2004 00:22

Re: Zeos - Stored Procedur
 
Hi,
jetzt bastel ich seit drei Tagen an diesem Problem rum, doch ich sitz immernoch irgenwie auf der Leitung :spin2:

Zitat:

konnten die Storeprocs nur über eine Query-Komponente mit dem Statement "EXECUTE PROCEDURE ..." aufgerufen werden, z. B.
Quellcode: markieren
EXECUTE PROCEDURE ADD_EMP_PROJ (:emp_no, :proj_id)
soweit so gut, also konnt ich wenigstens meine Versuche mit der StordPro-Komponeten beenden aber bekomms auch nicht über eine Query hin.
mein letzter Versuch (an der Beispieldatenbank) sah so aus:

Delphi-Quellcode:
with Query do
begin
  SQL.Text := 'EXECUTE PROCEDURE ADD_EMP_PROJ (:emp_no, :proj_id)';
  ParamByName('emp_no').Value := 444;
  ParamByName('proj_id').Value := 'VBASE';
  ExecSQL;
end;
ist wahrscheinlich völlig falsch :!: Wär jemand so nett mir mal den richtigen Code, um auf die Beispielprozedure zuzugreifen, zu posten.

Domo Sokrat 23. Okt 2004 07:43

Re: Zeos - Stored Procedur
 
Moin monta,

schau Dir mal die StoredProc-Demo aus den Demos zu meinem ZEOS-Tuto an... Die kannst Du hier herunterladen.

Ich hoffe, das hilft. Uups... Hab' eben erst wieder gesehen, dass Du D3 pro einsetzt :oops: . Meine Kompos sind für D7pro und ZEOS 6.1.5 erstellt. Ich hoffe aber, dass Du die Lösung aus dem Quellcode herausziehen kannst. Wenn nicht, dann melde Dich einfach mal.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:25 Uhr.
Seite 1 von 2  1 2      

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