AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Variables Handling mit TIBStoredProc
Thema durchsuchen
Ansicht
Themen-Optionen

Variables Handling mit TIBStoredProc

Ein Thema von Sven Janssen · begonnen am 22. Aug 2006 · letzter Beitrag vom 22. Aug 2006
Antwort Antwort
Benutzerbild von Sven Janssen
Sven Janssen

Registriert seit: 22. Jun 2004
Ort: Mayen
187 Beiträge
 
Delphi 4 Professional
 
#1

Variables Handling mit TIBStoredProc

  Alt 22. Aug 2006, 09:50
Datenbank: Interbase • Version: 6.0 • Zugriff über: TIB etc
Morgen,

ich rätsel hier ein wenig herum wie ich am besten mit einer TIBStoredProc umgehe, um mit dieser beliebige Proceduren auf dem SQL Server zu starten.

Wenn ich eine TBIStoredProc für mehrere Proceduren benutzen möchte, dann muss ich mich wahrscheinlich darum kümmern das die Parameter gelöscht und neu erstellt werden.
Dies wollte ich auch tun, aber mir ist noch nicht ganz klar wie ich die Parameter wieder heraus gelöscht bekomme.
Delphi-Quellcode:
        d.storedProc.StoredProcName:='NEXTFREELIEFNUMBER';
        for i:=0 to d.storedProc.Params.count -1 do d.storedProc.Params.items[i].Destroy; // Bringt beim zweiten mal einen Fehler
        with d.storedProc.Params.CreateParam(ftstring, 'lBound', ptInput) do asstring := '000';
        with d.storedProc.Params.CreateParam(ftstring, 'uBound', ptInput) do asstring := '999';
        d.storedProc.Params.CreateParam(ftInteger, 'A_RETURN', ptOutput);
        try
            d.storedProc.Prepare;
            d.storedProc.ExecProc;
        finally
            d.storedProc.unprepare;
        end;
        dbedit1.Text:=format('%*d',[3,d.storedProc.ParamByName('A_RETURN').Asinteger]);
Laut params.count sind 3 Parameter vorhanden, was auch korrekt ist. Aber bei #2 meckert er, dass der Index ausserhalb des gültigen Bereiches sei.
Mit einer try except Anweisung wie es in einem der Delphi Example gelöst ist funktioniert der Auftruf der Procedure. Allerdings halte ich das für schlecht gelöst. Auch fraglich ob ich dann eine andere Procedure aufrufen kann, da falsche Parameter in der ParamListe vorhanden sein könnten.

Wie geht ihr mit den StoredProcs Komponenten um. Eine für jede Procedure oder eine für alle Proceduren?
:wq /dev/null
He who fights with monsters might take care lest he thereby become a monster - Nietzsche
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Variables Handling mit TIBStoredProc

  Alt 22. Aug 2006, 09:55
Bei selectable SPs kann man auch eine normale Query-Komponente verwenden. Bei dieser wird bei Änderung des Abfragestrings die Parameter automatisch zurückgesetzt.
Markus Kinzler
  Mit Zitat antworten Zitat
TBx
(Administrator)

Registriert seit: 13. Jul 2005
Ort: Stadthagen
1.875 Beiträge
 
Delphi 12 Athens
 
#3

Re: Variables Handling mit TIBStoredProc

  Alt 22. Aug 2006, 09:56
Hallo!

Laß Deine Schleife mal in umgekehrter Richtung laufen .
Wenn DU bei I=2 angekommen bist, hast Du items[2] schon nicht mehr. der ist nämlich inzwischen items [0], da DU die anderen bereits gelöscht hast.

Hope it helps

onlinekater
Thomas Breitkreuz
  Mit Zitat antworten Zitat
Benutzerbild von Sven Janssen
Sven Janssen

Registriert seit: 22. Jun 2004
Ort: Mayen
187 Beiträge
 
Delphi 4 Professional
 
#4

Re: Variables Handling mit TIBStoredProc

  Alt 22. Aug 2006, 10:02
aua ... ist ja schon fast peinlich ;) Klar sollte man immer von hinten nach vorne löschen
:wq /dev/null
He who fights with monsters might take care lest he thereby become a monster - Nietzsche
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:50 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