AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Einzelnen Datensatz speziell "markieren"
Thema durchsuchen
Ansicht
Themen-Optionen

Einzelnen Datensatz speziell "markieren"

Ein Thema von hirnstroem · begonnen am 17. Nov 2006 · letzter Beitrag vom 17. Nov 2006
Antwort Antwort
hirnstroem

Registriert seit: 21. Sep 2005
297 Beiträge
 
Delphi 2006 Professional
 
#1

Einzelnen Datensatz speziell "markieren"

  Alt 17. Nov 2006, 09:50
Datenbank: MS Access • Zugriff über: ADO
'loha Folks,

folgendes Szenario:

Viele Geräte die irgendetwas machen werden in einer Datenbank erfasst und auf einem Webinterface angezeigt. Die Anzeige bietet die Möglichkeit ein Gerät zu manipulieren. Sobald ein Benutzer ein Gerät manipuiert, soll es für andere Benutzer gesperrt werden.

Meine Idee wäre nun, dies direkt beim jeweiligen Datensatz zu vermerken. Muss ich dazu ein neues Feld in der Datenbank einführen oder kann ein einzelner Datensatz auch "markiert" werden ohne etwas in die Datenbank schreiben zu müssen?

Alternativ könnte ich eine StrinList benutzen. Jedes Gerät, dass vor hat manipuliert zu werden, trägt sich selbstständig in die Liste ein und aus.

Also eigentlich Suche ich eine Eigenschaft für einzelne Datensätze, welche in etwa der Tag-Eigenschaft entspricht.

Grüsse
hirnstroem
inde deus abest
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Einzelnen Datensatz speziell "markieren"

  Alt 17. Nov 2006, 10:00
Unterstütz Access kein Locking.
Markus Kinzler
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Einzelnen Datensatz speziell "markieren"

  Alt 17. Nov 2006, 10:05
Hallo,

was passiert, wenn du ein Feld "locked" hast,
und dein Webinterface abstürzt?
Dann kann der Admin ran, und das "reparieren".

Access is eh nicht so schön
(keine Transaktionen, damit fällt ein locken über Transaktionen flach).

Ich würde zumindestens nach 2. Feld ein Datum/Uhrzeit
reinpacken (LockDateTime), welches per Timer (?)
von der Anwendung, die das Gerät gelockt hat aktualsiert wird.
Dazu könnte das Gerät (die DBId) in einer StringList gespeichert werden.

Die Feststellung, ob eine Gerät tatsächlich gelockt ist,
würde dann über das "locked" und eine definierte Zeitspanne zu "LockDateTime"
erfolgen (z.B. Timer 1 Minute -> alle LockDateTime=3 Minuten sind veraltet,
der Client ist wohl abgestürzt).

Alternativ könnte man auch eine Lock-Tabelle mit GeräteId und
den beiden Feldern benutzen
und durch unique index verhindern, dass das gerät zweimal eingetragen wird.

Ein 3. Feld könnte die UserId sein.
Eine Meldung "Gerät gerade benutzt von XXX" wäre dann möglich.


Heiko
Heiko
  Mit Zitat antworten Zitat
hirnstroem

Registriert seit: 21. Sep 2005
297 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Einzelnen Datensatz speziell "markieren"

  Alt 17. Nov 2006, 10:33
Zitat von mkinzler:
Unterstütz Access kein Locking.
Doch, Locking wird schon unterstützt, nur bringt es in diesem Fall nicht viel, da ich mit dem Datensatz an und für sich nichts mache ausser die Adresse des entsprechenden Gerätes auszulesen und mit dieser Adresse weiterzuarbeiten.

Dann werde ich wohl auf die von Heiko beschriebene Variante zurückgreifen.

Vielen Dank
inde deus abest
  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 03:43 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