Announcement

Collapse
No announcement yet.

StroedProcedure ausführen (Oracle)

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • StroedProcedure ausführen (Oracle)

    Guten Tag

    ich bin hier echt am verzweifeln. Eine StoredProcedure über ADO auf Oracle auszuführen kann doch nicht so schwer sein. Folgende Procedure soll ausgeführt werden (für testzwecke)
    <PRE>
    CREATE OR REPLACE PROCEDURE NUN (tag OUT Integer) AS
    BEGIN
    tag := 1;
    END;

    </PRE>
    nun habe ich verschiedene Varianten ausprobiert. Mit ADOStoredProc und mit ADODataSet kahm immer die selbe Fehlermeldung <P>
    ADOStoredProc1: CommandText gibt keine Ergebnismenge zurück <P>
    ich denke nicht das es am Treiber lieg. Bitte also dringend um HILFE...
    <P>
    Gruß Ralf

  • #2
    Hallo, ich habe dein Bsp. mal nachgespielt.<BR>
    Zuerst habe ich die Fehlermedlung "Unbekannter Fehler" bekommen.<BR>
    Nachdem ich in den Parametern von TAdoStorecProc den DataType<BR>
    von ftBCD auf ftFloat gesetzt habe, lief alles wunderbar.<BR>
    Evtl. ist das auch bei dir der Fall<BR>

    procedure TForm1.Button1Click(Sender: TObject);<BR>
    begin<BR>
    try<BR>
    AdoConnection1.Open;<BR>
    ADOStoredProc1.Prepared := True;<BR>
    ADOStoredProc1.ExecProc;<BR>
    Edit1.Text := FloatToStrf(ADOStoredProc1.Parameters[0].Value,fffIxed,15,2);<BR>
    finally<BR>
    AdoConnection1.CLose;<BR>
    end;<BR>
    end;<BR>

    Paramters[0]<BR>
    Attributes = [paNullable]<BR>
    Datatype = ftFloat<BR>
    Direction = pdOutput<BR>
    Name = TAG<BR>

    Hoffe du kommst weite

    Comment


    • #3
      <B>Ein Großes DANKESCHÖN !!!</B> <P>
      das es an dem Typen liegt, daruf hätte ich auch selbst kommen können..

      Comment


      • #4
        Hallo,

        ich habe ein ähliches Problem unter Oracle 9i mit Delphi 6 Ent. UP2 und ADO. Ich habe eine Procedure erstellt
        <pre>CREATE OR REPLACE MYPROC(
        aid IN NUMBER,
        atitle IN VARCHAR2,
        acode IN NUMBER,
        avalu IN FLOAT) IS
        BEGIN
        INSERT INTO MYTABLE
        VALUES (aid, atitle, acode, avalue);
        END;</pre>

        Beim Ausführen via ADOStoredProc.ExecProc ernte ich die Fehlermeldung "Unbekannter Fehler". Die tatsächlichen Datentypen in der Tabelle MYTABLE sind für<br>
        - aid = NUMBER(9)<br>
        - atitle = VARCHAR2(50)<br>
        - acode = NUMBER(4)<br>
        - avalu = FLOAT

        Laut Oracle Doku kann ich bei Prozeduren kein NUMBER(9) oder VARCHAR2(50) als Datentyp angeben. Könnte das unter Umständen das Problem sein? Versuche ich es bei MS SQL Server 2000 (hier stimmen Tabellen-Datentypen und Parameter-Datentypen überein) funktioniert alles tadellos.

        Stephan Schneide

        Comment

        Working...
        X