Einzelnen Beitrag anzeigen

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, 10: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