AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi ZEOS/MySQL Problem mit Transaktionssperre
Thema durchsuchen
Ansicht
Themen-Optionen

ZEOS/MySQL Problem mit Transaktionssperre

Ein Thema von steirer · begonnen am 2. Okt 2005
Antwort Antwort
steirer

Registriert seit: 1. Dez 2004
Ort: Graz
7 Beiträge
 
#1

ZEOS/MySQL Problem mit Transaktionssperre

  Alt 2. Okt 2005, 18:59
Datenbank: mysql • Zugriff über: Zeos
Hallo,

ich habe folgendes Problem:

Wenn ich über 2 Programmaufrufe eine Änderung eines Datensatzes vornehme, überschreiben sich diese gegenseitig. Grundsätzlich sind Inno-DB-Tabellen ja transaktionssicher, also mache ich offenbar was falsch.
Folgende Einstellungen habe ich vorgenommen:

Delphi-Quellcode:
  object DB1: TZConnection
    Protocol = 'mysql'
    HostName = 'localhost'
    Port = 0
    Database = 'ware'
    User = ''
    Password = ''
    Catalog = 'ware'
    AutoCommit = True
    ReadOnly = False
    TransactIsolationLevel = tiRepeatableRead
    Connected = True
    AfterConnect = DB1AfterConnect
    SQLHourGlass = True
    Left = 8
    Top = 16
  end
.
.
.
.

  object LK: TZQuery
    Connection = DM1.DB1
    CachedUpdates = False
    AfterPost = LKAfterPost
    RequestLive = True
    SQL.Strings = (
      'select * from LKopf'
      'WHERE lsnr = :lsnr'
      'FOR UPDATE'
      '')
    ParamCheck = True
    Params = <
      item
        DataType = ftUnknown
        Name = 'lsnr'
        ParamType = ptUnknown
      end>
    ShowRecordTypes = [usUnmodified, usModified, usInserted]
    DataSource = LKSALL
    UpdateMode = umUpdateChanged
    WhereMode = wmWhereKeyOnly
    Options = [doCalcDefaults]
    Left = 341
    Top = 60
    ParamData = <
      item
        DataType = ftUnknown
        Name = 'lsnr'
        ParamType = ptUnknown
      end>
Ich habe mich auch schon herumgespielt mit DB1.autocommit:= false; und DB1.starttransaction in lkbeforeedit(); DB1.commit in lkafterpost(); aber das lässt mich den Datensatz im zweiten Programmaufruf nicht einmal anzeigen (db-connection bekommt irgendwann ein timeout).

Habt ihr Ideen,wass ich falsch mache?

Danke für eure Antworten!
Peter Steger
  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 23:20 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