AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SP wird nicht an DB übergeben
Thema durchsuchen
Ansicht
Themen-Optionen

SP wird nicht an DB übergeben

Ein Thema von Albi · begonnen am 14. Jul 2005 · letzter Beitrag vom 15. Jul 2005
Antwort Antwort
Albi

Registriert seit: 4. Mai 2003
Ort: Berlin
458 Beiträge
 
Delphi 7 Professional
 
#1

SP wird nicht an DB übergeben

  Alt 14. Jul 2005, 20:35
Datenbank: FireBird • Version: 1.5 • Zugriff über: FIBPlus
Hallo,

ich bin hier kurz vorm verzweifeln. Wie oben schon geschrieben, greife ich über die FIBPlus auf die FB zu. Ich verwende desweiteren noch eine Transaction und eine SP. So nun habe ich das Problem das die Daten nicht in der DB gespeichert werden, sie gehen einfach verloren. Eine EV oder sonstiges Fehlermeldungen treten nicht auf. Die Daten landen einfach nicht der DB.

Die Procedure zum speichern sieht so aus:

Code:
TransCommit(DMUserSetup.T_User_Get);
  TransStart(DMUserSetup.T_User_Set);
  Try
    with DMUserSetup.SP_User_Set do
    begin
      ParamByName('iUser_Name').Value:= Txt_UserName.Text;
      ParamByName('iFirst_Name').Value:= Txt_First_Name.Text;
      ParamByName('iLast_Name').Value:= Txt_Last_Name.Text;
      ParamByName('iKuerzel').Value:= Txt_Kuerzel.Text;
      ParamByName('iStatus_a').Value:= 1;
      ParamByName('iStatus').Value:= 1;
      ExecProc;
      TransCommit(DMUserSetup.T_User_Set);

      if ParamByName('oUser_Count').AsInteger = 0 then
        MessageDlg(Msg_Save_New_OK, mtInformation, [mbOK], 0)
      else
        MessageDlg(Msg_Save_Edit_OK, mtInformation, [mbOK], 0);
      Get_User;
    end;
  except
    on E:Exception Do
    Begin
      MessageDlg(Msg_Save_Error+#13+E.Message, mtError, [mbOK], 0);
      TransRollBack(DMUserSetup.T_User_Set);
    end;
  end;
Die Proceduren zum Starten und Commiten sehen so aus:

Code:
If Not Trans.InTransaction Then
   Trans.StartTransaction;
Code:
if Trans.InTransaction then
    Trans.Commit;
Hat jemand von euch eine Idee, woran das liegen kann. Also an der Verbindung zur DB schon mal nicht, da Select's usw funktionieren. Auch wenn ich das Statement via Query an die DB schicke werden die gespeichert nur eben über die SP nicht. (In anderen Projekten geht das doch auch, wieso hier nicht? )

//Edit: Die SP liefert mir auch einen Rückgabeparameter und selbst dieser wird korrekt übergeben.
Gruß

Albi
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: SP wird nicht an DB übergeben

  Alt 14. Jul 2005, 21:42
Leider habe ich FIBPlus nicht auf meiner Maschine. Bist du wirklich sicher, dass die Daten nicht gespeichert werden? Wie prüfst du das? Wenn sie doch gespeichert werden sollten und du siehst sie nicht, dann könnte es am TransactionIsolationLevel liegen. Werden sie tatsächlich nicht gespeichert, dann könnte es an deiner StoredProcedure liegen oder an einem unsachgemäßen Umgang (best bet) mit dem Transaktionsmechanismus in deinem Code.

Grüße vom marabu
  Mit Zitat antworten Zitat
Albi

Registriert seit: 4. Mai 2003
Ort: Berlin
458 Beiträge
 
Delphi 7 Professional
 
#3

Re: SP wird nicht an DB übergeben

  Alt 15. Jul 2005, 06:23
Erst habe ich gleich nach dem Commit zum speichern ein Select auf die Datenmenge abgesetzt, um das Änderungsdatum zu bekommen. Nach dem da nichts zu sehen war, habe ich auch erst gedacht, das die Transaction für die Abfrage noch mit einer "alten Version" arbeitet. Also habe ich mir die IBExpert Pers. genommen und gleich nach dem Commit direkt in die Tabelle geschaut aber nichts da.
Gruß

Albi
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: SP wird nicht an DB übergeben

  Alt 15. Jul 2005, 06:48
Meinst du nicht auch, dass es dann an der SP selbst liegen sollte - und nicht an deinem Delphi-Code?

marabu
  Mit Zitat antworten Zitat
Albi

Registriert seit: 4. Mai 2003
Ort: Berlin
458 Beiträge
 
Delphi 7 Professional
 
#5

Re: SP wird nicht an DB übergeben

  Alt 15. Jul 2005, 07:03
Der Gedanke ist mir auch schon gekommen aber wie schon gesagt, in den anderen Projekten geht es doch auch. Also weiß ich nicht mehr wo der Fehler liegen sollte.

Mir ist erst der Gedanke gekommen, dass das Commit nicht richtig ausgeführt wird (besser gar kein) und somit ja automatisch ein Rollback erfolgt. Das würde dann doch auch erklären, warum die Rückgabe-parameter stimmen.

Ich werde mal weiterprobieren.
Gruß

Albi
  Mit Zitat antworten Zitat
Antwort Antwort


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