Größe des String bei "StoredProc->Params" angeben



  • Hi zusammen,

    habe eine StoredProc und läuft auch alles wunderbar.
    Jetzt muss ich aber bei einer Abfrage die Länge der RESULT-Strings angeben..!
    Wie amch ich das?

    StoredProc->StoredProcName = "ABFRAGE";
    StoredProc->Params->Clear();
    StoredProc->Params->CreateParam(ftString, "String1", ptInput);
    StoredProc->Params->CreateParam(ftString, "String2", ptInput);
    StoredProc->Params->CreateParam(ftString, "RESULT", ptResult);
    //Hier muss ich die Länge des RESULT-Strings setzen!
    

    Wäre um eure Hilfe sehr dankbar!!!

    Danke



  • Nur über das Parameter-Objekt selbst. In diesem Fall sollte wohl folgendes reichen:

    TParam* MyParam = StoredProc1->ParamByName("RESULT");
    MyParam->Size = 20;
    


  • HI,
    erstmal danke!

    Aber jetzt mekert er, dass Size kein element von my Param ist!?
    Was tun?

    danke Bench



  • Aus der Hilfe zu TParam::Size:

    Die Eigenschaft bestimmt die Zeichenzahl in einem Parameter des Typs String.

    __property int Size = {read=FSize, write=FSize, default=0};

    Beschreibung

    Mit Size legen Sie die maximale Anzahl der Zeichen fest, aus denen der Parameter bestehen darf. Size gilt nur für String-Parameter. Für numerische Parameter gelten die Eigenschaften NumericScale und Precision. Bei allen anderen Parametern sollte Size den Wert null haben.

    Hinweis: Size gilt nur für Parameter, die von dbExpress-Datenmengen verwendet werden.

    Ein String ist es definitiv und da explizit nach der Größe gefragt wird, bin ich davon ausgegangen, dass Du die dbExpress-Komponenten verwendest.

    Bin etwas ratlos...



  • HI,

    Danke!!!!!
    sorry versteh ich nicht ganz!?
    Benutze das Databaseformular vom Builder!

    Es ist ein String, den ich zurück bekomme!!!
    Das Problem ist nur, dass dieser Rückgabestring eine dynamische Größe hat und somit kommt der Fehler "Indexfehler - string too long".
    Habe es mit c# probiert und wenn ich dort die Länge des rüchgabestrings angebe, dann eght es.
    Muss es aber in c++ lösen...!

    Jetz scheint die Lösung zu sein, dass ich dem Parameter "RESULT" die Länge z.B 50 gebe..!
    Bloss weiss ich leider nicht, wie das geht?

    Danke Bench



  • Was für ein Databaseformular denn? Wie ist denn der Typ von StoredProc?


Anmelden zum Antworten