AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Stored Procedure: Rückgabewert
Thema durchsuchen
Ansicht
Themen-Optionen

Stored Procedure: Rückgabewert

Ein Thema von fkerber · begonnen am 11. Mär 2011 · letzter Beitrag vom 18. Mär 2011
 
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#15

AW: Stored Procedure: Rückgabewert

  Alt 18. Mär 2011, 12:56
Hi,

ich krieg die Krise.
Ich hatte den Code von omata übernommen und das hatte auch alles geklappt.
Seit eben kommt aber bei allem was ich tue (auch bei einer anderen Methode) nur noch folgende Fehlermeldung:

Zitat:
invalid transaction handle (expecting explicit transaction start)

Der Code im Moment:
Delphi-Quellcode:
var
  proc: TIBCStoredProc;
  ta: TIBCTransaction;
  query: TIBCQuery;
  i, contactid: Integer;
begin
  ta := TIBCTransaction.Create(nil);
  proc := TIBCStoredProc.Create(nil);
  query := TIBCQuery.Create(nil);
  result := True;
  try
    ta.DefaultConnection := ibc_mainDB;
    proc.Transaction := ta;
    query.Transaction := ta;
    ta.StartTransaction;
    try
      proc.StoredProcName := 'CREATECUSTOMER';
      proc.Prepare;
      proc.ParamByName('name').Value := custName;
      proc.ParamByName('title').Value := title;
      proc.ParamByName('forename').Value := forename;
      proc.ParamByName('surname').Value := surname;
      proc.ParamByName('street').Value := street;
      proc.ParamByName('houseNo').Value := houseNo;
      proc.ParamByName('country').Value := Uppercase(country);
      proc.ParamByName('zipcode').Value := zipcode;
      proc.ParamByName('cityname').Value := cityname;
      proc.ExecProc;
      contactid := proc.ParamByName('contactid').AsInteger;

      query.SQL.Text :=
        'INSERT INTO DIALNUMBER (NUMBERTYPE, NUMBER, CONTACTID) VALUES (:type, :no, :contactid)';
      query.Prepare;
      for i := 0 to length(dialNo) - 1 do
      begin
        query.ParamByName('type').Value := dialNo[i][0];
        query.ParamByName('no').Value := dialNo[i][1];
        query.ParamByName('contactid').Value := contactid;
        query.Execute;
      end;

      ta.Commit;
    except
      result := False;
      ta.Rollback;
      raise;
    end;
  finally
    query.Free;
    proc.Free;
    ta.Free;
  end;
end;

Was mache ich falsch?
Es tritt auch bei den Codes von Thomas und omata auf.
Ich muss also irgendwo was generelles verdreht haben, aber ich weiß nicht was?!
Neustart half auch nicht.

LG, Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
 


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 01:02 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz