AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Commit geht nicht (SQL)
Thema durchsuchen
Ansicht
Themen-Optionen

Commit geht nicht (SQL)

Ein Thema von Hansa · begonnen am 21. Aug 2003 · letzter Beitrag vom 1. Sep 2003
Antwort Antwort
Seite 2 von 5     12 34     Letzte »    
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#11

Re: Commit geht nicht (SQL)

  Alt 21. Aug 2003, 21:40
Nein, das ist ja der Witz.
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von kiar
kiar

Registriert seit: 2. Aug 2003
Ort: Aschersleben
1.362 Beiträge
 
Delphi 5 Professional
 
#12

Re: Commit geht nicht (SQL)

  Alt 21. Aug 2003, 21:45
und du startest die transaction im beforinsert -event?
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#13

Re: Commit geht nicht (SQL)

  Alt 21. Aug 2003, 21:47
Delphi-Quellcode:
procedure TForm1.FormShow(Sender: TObject);
begin
  i := 1;
  StringGrid1.fixedColor := clBtnFace +10;
  StringGrid1.Col := i;
(*
if StringGrid1.Options = goFixedVertLine then
StringGrid1.GridLineWidth := 0;
*)

  StringGrid1.Cells [0,1] := IntToStr (i)+'.';
  StringGrid1.Cells [1,0] := 'Art.Nr.';
  StringGrid1.Cells [2,0] := 'Art.Bez.';
  ...
  RecDataMod.Transaction.StartTransaction;
  LabeledEdit1.SetFocus;
end;
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von kiar
kiar

Registriert seit: 2. Aug 2003
Ort: Aschersleben
1.362 Beiträge
 
Delphi 5 Professional
 
#14

Re: Commit geht nicht (SQL)

  Alt 21. Aug 2003, 21:52
hansa ist ja gut

transactionen sollten nur so kurz wie möglich offen sein

ich denke wir machen morgen weiter - an der gleichen stelle

mir drehen sich schon die

raik
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#15

Re: Commit geht nicht (SQL)

  Alt 21. Aug 2003, 21:56
tja, wer weiß Formshow -> StartTransaction. FormClose -> Commit. 8)
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von kiar
kiar

Registriert seit: 2. Aug 2003
Ort: Aschersleben
1.362 Beiträge
 
Delphi 5 Professional
 
#16

Re: Commit geht nicht (SQL)

  Alt 22. Aug 2003, 09:19
moin hansa

wollte mal ein prog bauen, leider funktionieren die ressourcen mit ibx icht mehr.

wenn ich heute noch hinkriege werde ich es noch machen

raik
  Mit Zitat antworten Zitat
Benutzerbild von kiar
kiar

Registriert seit: 2. Aug 2003
Ort: Aschersleben
1.362 Beiträge
 
Delphi 5 Professional
 
#17

Re: Commit geht nicht (SQL)

  Alt 22. Aug 2003, 09:50
was mir noch aufgefallen ist, das du nicht explizit die dataset bei der transaction angibts:
Delphi-Quellcode:
begin
  CASE MessageDlg('speichern ?',mtInformation,
    [mbYes, mbNo], 0) OF
    mrNo : recmoddata.TransAction.Rollback;
    mrYes : recmoddata.TransAction.Commit;
  end;
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#18

Re: Commit geht nicht (SQL)

  Alt 22. Aug 2003, 10:18
Wenn ich so weiter mache, ist das halbe Programm gepostet, aber hier muß der Hund begraben liegen:

Delphi-Quellcode:
LagDS.Close;
LagDS.SelectSQL.Text := 'SELECT * FROM LAGER8 WHERE ID_ART = ';
LagDS.SelectSQL.Text := LagDS.SelectSQL.Text +
                        ArtDS.FieldByName ('ID').AsString;
LagDS.open;
aendern := NOT LagDS.IsEmpty;
LagDS.Close;
LagDS.SelectSQL.Clear;
if not aendern then begin
  LagDS.SelectSQL.Add ('INSERT INTO LAGER8 (ID,MENGE) VALUES (');
  LagDS.SelectSQL.Add (ArtDS.FieldByName ('ID').AsString);
  LagDS.SelectSQL.Add (','+IntToStr (-1*GesMenge)+')');
  LagDS.Open;
end
else begin
  LagDS.SelectSQL.Add ('UPDATE LAGER8 SET MENGE=MENGE-');
  LagDS.SelectSQL.Add (IntToStr (GesMenge));
  LagDS.Open;
end;
Zuerst suche ich einen Artikel. Ist einer da, gehts mit dem Source hier weiter. Ich prüfe ob Lagerdaten dazu exist. und dann wird der Lagerbestand halt aktualisiert. Irgendwas stimmt da nicht. Ich habe das ungute Gefühl, daß ich etwas sehr wichtiges vergessen / falsch gemacht habe, sehe aber nicht was. 8)
Gruß
Hansa
  Mit Zitat antworten Zitat
urs.liska

Registriert seit: 6. Aug 2003
Ort: Freiburg
195 Beiträge
 
Delphi 6 Professional
 
#19

Re: Commit geht nicht (SQL)

  Alt 22. Aug 2003, 10:25
Hallo Hansa,

ich habe leider nicht die Zeit, mir einen genauen Lösungsvorschlag auszudenken, aber das Problem ist ganz klar:
Du weist die - an sich korrekte - SQL-Anweisung der SelectSQL-Eigenschaft der Dataset zu und öffnest dann die Datenmenge. Das ist aber nicht dafür gedacht. Du musst entweder mit den Insert- oder UpdateSQL-Eigenschaften arbeiten und ExecSQL aufrufen (ich weiß aber nicht genau, ob das einfach so geht oder ob erst DS.Insert->Feldzuweisung->DS.Post machen musst) oder mit TIBSQL arbeiten. Jedenfalls kannst Du mit SelectSQL keine Daten ändern

Viel Glück
Urs
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#20

Re: Commit geht nicht (SQL)

  Alt 22. Aug 2003, 10:36
Leider bin ich heute echt blind, aber so ganz kann das nicht stimmen. Der Witz ist nämlich, wenn kein Datensatz vorhanden lande ich bei insert. Gebe ich sofort danach nochmal dasselbe ein lande ich bei Update. Gebe ich einen anderen Artikel ein wieder Insert. Also so wie es sein müßte. Aber mir fällt gerade auf, daß ich kein Post verwende. hmmmm.
Gruß
Hansa
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 5     12 34     Letzte »    


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 15:53 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