AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Lock Tables mit ZEOS
Thema durchsuchen
Ansicht
Themen-Optionen

Lock Tables mit ZEOS

Ein Thema von Mirotux · begonnen am 2. Dez 2003 · letzter Beitrag vom 7. Dez 2003
Antwort Antwort
Mirotux

Registriert seit: 1. Dez 2003
8 Beiträge
 
Delphi 6 Professional
 
#1

Lock Tables mit ZEOS

  Alt 2. Dez 2003, 09:08
hallo,

ich benutze zeos 5.3.4 und mysql 3.23.42-nt.
ich versuche nun mit

qrMain.SQL.Text :='LOCK TABLES jobordernr READ, inbound READ ;';
qrMain.ExecSql ;

die tabellen 'jobordernr' und 'inbound' zu sperren, um zu verhindern, dass
andere user zeitgleich werte verändern können.

Danach wird wieder in die DB geschrieben:

qrMain.SQL.Text := 'INSERT INTO jobordernr (type, number , owner) VALUES (:J1, :J2, :J3 ) ;';
qrMain.Params[0].Value := cmbTypeInbound.Text ;
qrMain.Params[1].Value := edNumberInbound.Text ;
qrMain.Params[2].Value := cmbOwnerInbound.Text ;
qrMain.open;

bei der ausführung wird aber immer eine fehlermeldung ausgegeben:

Exception der Klasse EDatabaseError aufgetreten. Meldung: 'Table 'jobordernr'
was locked with a READ lock and can't be updated'.

Das sollte aber eigentlich für die anderen gelten und nicht fuer mich, oder ?

Wenn ich die tabellen mit WRITE sperre passiert garnichts,
andere user koennen die daten aendern.

hat jemand erfahrung mit diesem problem gesammelt ?

dank im voraus
  Mit Zitat antworten Zitat
Mirotux

Registriert seit: 1. Dez 2003
8 Beiträge
 
Delphi 6 Professional
 
#2

Re: Lock Tables mit ZEOS

  Alt 5. Dez 2003, 08:39
hallo forum,

ich habe das gefühl, das ich mit dieser frage hier kein erfolg haben werde.

ich habe deshalb in einem anderen forum (spotlight) die gleiche frage gestellt.

nichts fuer ungut, aber ich brauche dringend einen lösungsansatz.

gruss
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.170 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Lock Tables mit ZEOS

  Alt 5. Dez 2003, 10:43
Hallo Mirotux, nur nicht verzagen

Der Standart-Tabellentyp von MySQL unterstützt keine Transaktionen. Evtl. lößt sich dein Problem wenn Du den Tabellentyp auf den INNODB-Tabellentyp umstellst und dort mittels StartTransaction und EndTransaction arbeitest. Dann dürfte die LOCK TABLES-Anweisung unnötig sein da MySQL über die Transaktionssteuerung alles erledigen dürfte.
  Mit Zitat antworten Zitat
Mirotux

Registriert seit: 1. Dez 2003
8 Beiträge
 
Delphi 6 Professional
 
#4

Re: Lock Tables mit ZEOS

  Alt 5. Dez 2003, 10:59
danke fuer deine antwort

kann es sein, das meine mysql version 3.23.42 keine INNODB unterstützt ?
es kann doch nicht so schwer sein eine tabelle fuer andere
zu sperren. scheint doch ein bug von zeos (oder mir )zu sein.

gruss
joerg
  Mit Zitat antworten Zitat
Benutzerbild von Memo
Memo

Registriert seit: 19. Aug 2003
509 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Lock Tables mit ZEOS

  Alt 5. Dez 2003, 11:51
Zitat von Mirotux:
kann es sein, das meine mysql version 3.23.42 keine INNODB unterstützt ?
Ja. Das wurde erst ziemlich spät eingeführt. Nimm einfach eine neuere Version >3. Die Unterstützen InnoDB
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.170 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: Lock Tables mit ZEOS

  Alt 6. Dez 2003, 12:39
Die Max-Versionen von mySQl 3.x müssten InnoDB unterstützen. Bei 4.x-Versionen sind sie auch in der Standardversion dabei.
  Mit Zitat antworten Zitat
Benutzerbild von Berserker
Berserker

Registriert seit: 15. Dez 2002
Ort: Chemnitz
164 Beiträge
 
Delphi 6 Professional
 
#7

Re: Lock Tables mit ZEOS

  Alt 7. Dez 2003, 18:48
Hallo Mirotux.

Doch es gibt eine Lösung für dein Problem, das ich auch hatte.
Da ja MySQL keine Record-Locks supportet musste ich mir halt was aus dem FF leiern.

Du kannst einen VIRTUELLEN LOCK erzeugen.
Jedoch musst du dann immer vorher Prüfen ob dieser Lock vorhanden ist oder nicht.
Wenn er vorhanden ist, dann darf keine Bearbeitung zugelassen werden.

Kontaktiere mich einfach mal. Dann kann ich dir den Code schicken.

Am besten per ICQ 70049778.
Bin eigentlich fast immer Online.

MfG, Ronny
  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 06:14 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