Einzelnen Beitrag anzeigen

Hansa

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

AW: Lock conflict on no wait transaction ?

  Alt 6. Mär 2011, 20:33
Äh, was weglassen ? Ganz ohne Transaktionen oder wie ? Mit Firebird ?

Momentaner Stand ist jetzt so (Autocommit = false) :
Delphi-Quellcode:
procedure TForm1.btn1Click(Sender: TObject);
var i,j : Integer;
    anfang : TTime;
    answer : TModalResult;
begin
  anfang := now;
  Randomize;
  for i := 1 to 2000 do begin
    answer := idYes;
    j := Random (25);
    mem1.Lines.Add(IntToStr(i));
    repeat
      if not DB.Connected then
        DB.Open;
      if not WriteTransaction.InTransaction then
        WriteTransaction.StartTransaction;
      if not ReadTransaction.InTransaction then
        ReadTransaction.StartTransaction;
      try
        if DebugHook <> 0 then
          WriteData (j,'IDE '+ IntToStr(10 * i))
        else
          WriteData (j,IntToStr(10 * i));
        if WriteTransaction.InTransaction then
          WriteTransaction.Commit;
        if ReadTransaction.InTransaction then
          ReadTransaction.Commit;
      except
        answer := MessageBox(Self.Handle,'Wiederholen ?','Information',MB_ICONINFORMATION or MB_YESNO);
      end;
    until (Answer = idYes) or (Answer = idNo);
    if Answer = idNo then
      Break;
  end;
  mem1.Lines.Add(IntToStr(i) + ' Diff. : '+ TimeToStr(now-anfang)+' '+IntToStr (j));
end;
Was ist davon zu halten ? Sieht so aus, als würde das so laufen. Allerdings weiss ich nicht genau was da geschrieben wird, sofern "Wiederholen" gedrückt wird.
Gruß
Hansa
  Mit Zitat antworten Zitat