Announcement

Collapse
No announcement yet.

SP im Code erzeugen (bde, ib6.01.)

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

  • SP im Code erzeugen (bde, ib6.01.)

    Hallo #,<p>
    ich will folgenden SP im Rahmen eines Datenbank-Updates erzeugen.

    <pre>
    CREATE PROCEDURE SP_GET_KTOIDOFYEAR_REST_HOLIDAY
    RETURNS (
    THEKTOID INTEGER)
    AS
    begin
    for select id from kto where bBool11='1' into :theKtoId do
    begin
    suspend;
    Exit;
    end
    end
    </pre>
    <br>
    Mein Code sieht wie folgt aus:
    <pre>
    with FQuerySQL do
    begin
    if StoreProcedureExists('SP_GET_KTOIDOFYEAR_REST_HOLI DAY') then
    begin
    Result:= True;
    Exit;
    end;

    SQL.Clear;
    SQL.Add('CREATE PROCEDURE SP_GET_KTOIDOFYEAR_REST_HOLIDAY');
    SQL.Add('RETURNS (');
    SQL.Add(' THEKTOID INTEGER)');
    SQL.Add('AS');
    SQL.Add('begin');
    SQL.Add(' for select id from kto where bBool11=''1'' into :theKtoId do');
    SQL.Add(' begin');
    SQL.Add(' suspend;');
    SQL.Add(' Exit;');
    SQL.Add(' end');
    SQL.Add('end');
    ExecSQL;

    Result:= True;
    end;
    </pre>
    <p>
    FQuerySQL ist TQuery. Zugriff erfolgt über bde.
    <br>
    Es mkommt die Fehlermeldung "Token unknown, line 6 , char 47"
    <p>
    Die folgende SP klappt aber, sie ist allerdings auch einfacher. Was mache ich denn falsch ?
    <pre>
    SQL.Clear;
    SQL.Add('Create Procedure '+theTableName+'_NewId returns(newid integer)');
    SQL.Add('as begin newid=gen_id(Gen_'+theTableName+',1); end;');
    ExecSQL;
    </pre>
    <p>

    Danke im voraus Heiko

  • #2
    Hallo Heiko,
    <br><br>
    kann es sein, dass Du <b>ParamCheck</b> der TQuery auf <b>true</b> gesetzt hast? Wenn ja, dann versuch das Ganze mal mit ParamCheck=False, weil theKtoId sonst als Parameter interpretiert wird.
    <br><br>
    Thoma
    Thomas Steinmaurer

    Firebird Foundation Committee Member
    Upscene Productions - Database Tools for Developers
    Mein Blog

    Comment


    • #3
      Hallo Thomas,<p>
      woher kennst du denn diesen Parameter ?
      <p>
      TQuery benutze ich schon seit D1, aber das kannte ich nicht.
      <p>
      Vielen Dank !!!
      <p>
      Heik

      Comment


      • #4
        Hallo Heiko,
        <br><br>
        soviele Properties hätte die TQuery doch gar nicht. ;-)
        <br><br>
        Da hast Du noch nie eine TIBOQuery od. TIB_Query von IBObjects gesehen. ;-))
        <br><br>
        Schöne Grüße,
        <br>
        Thoma
        Thomas Steinmaurer

        Firebird Foundation Committee Member
        Upscene Productions - Database Tools for Developers
        Mein Blog

        Comment

        Working...
        X