Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Datensatz-Versionshandling mit Timestamp (https://www.delphipraxis.net/68771-datensatz-versionshandling-mit-timestamp.html)

MPirnstill 5. Mai 2006 09:35

Datenbank: MS-SQL-Server • Version: 2000 • Zugriff über: mit TTable über BDE

Datensatz-Versionshandling mit Timestamp
 
Hi Leute!

Da sich bei meinem "Problemchen" :mrgreen: mit den gegenseitigen Bockierungen der Anwender herauskristallisiert hat, daß ich nun mein Prog and die "superschlaue DB von Kleinweich" :evil: anpassen, hab ich mir gedacht, ich füge in die Tabelle eine Datensatz-Versionsspalte ein um direkt vorm Speichern zu überprüfen, ob der Datensatz von einem anderen Anwender während der Bearbeitung geändert wurde.
Jetzt gibt es da ja einen Datentyp "Timestamp" beim MS-SQL-Server der bei jedem Update des Datensatzes aktuallisiert wird. Das wäre ja nun sehr praktisch für mein Vorhaben. Scheint ja auch dafür gedacht (Synonym RowVersion). Dachte da M$ vielleicht doch mal was gut gemacht, :thumb: jedoch steht in der Hilfe, daß dies nicht der timestamp-Datentyp vom SQL-Standard ist ( :gruebel: *). Außerdem finde ich auch in Delphi 2.0 nichts an Funktionen um einen Timestamp zu konvertieren. Wenn ich den Inhalt in eine Variable vom Typ Variant einlesen und im Debugger den Wert anschauen will, bekomme ich nur "Typ of unbekannt".

Hat einer eine Idee, wie man diesen Datentyp verarbeiten kann, sonst muß ich doch DateTime nehmen und die Aktuallisierung selbst vornehmen.

Gruß

* Wenn jemand Übung damit und zu viel Zeit hat, könnte er ja mal einen Smiley mit Daumen nach unten erstellen.

mkinzler 5. Mai 2006 09:41

Re: Datensatz-Versionshandling mit Timestamp
 
Vielleicht wäre es einfacher einen normalen Timestamp zu nehmen und dein Feld von einen Trigger füllen zu lassen.

RavenIV 5. Mai 2006 09:43

Re: Datensatz-Versionshandling mit Timestamp
 
Zitat:

Zitat von MPirnstill
"superschlaue DB von Kleinweich"

/off-topic
die Firma heisst entweder "Winzigweich" oder Kleinstweich"
/off-topic

MPirnstill 5. Mai 2006 10:24

Re: Datensatz-Versionshandling mit Timestamp
 
Zitat:

Zitat von mkinzler
Vielleicht wäre es einfacher einen normalen Timestamp zu nehmen und dein Feld von einen Trigger füllen zu lassen.

Was meinst du jetzt mit normalen Timestamp. Meinst du DateTime?

mkinzler 5. Mai 2006 10:25

Re: Datensatz-Versionshandling mit Timestamp
 
Ja, und diesem durch einen Trigger automatisch mit aktuellem Zeitstempel füllen zu lassen.

shmia 5. Mai 2006 10:41

Re: Datensatz-Versionshandling mit Timestamp
 
Man kann auf die Daten mit [TField].AsString zugreifen.
Allerdings bekommt man in dem String nur binäre Daten.
Um diese darstellen zu können:
http://www.delphipraxis.net/internal...ct.php?t=46363

PS: während der Enterprise Manager den Inhalt von timestamp Felder nicht anzeigen kann,
ist dies für den Query Analyser kein Problem

MPirnstill 16. Mai 2006 07:02

Re: Datensatz-Versionshandling mit Timestamp
 
Zum Abschluß, wie ich es jetzt gelöst hab. : :coder:

Hab jetzt ein normales DateTime-Feld genommen und sorge selbst dafür, das es aktualisiert wird. Dadurch hab ich auch automatisch das letzte Änderungsdatum.
Wäre mit dem Timestamp von M$-SQL-Server ja ganz praktisch gewesen, aber bei M$ gibt's ja meist irgendwelche Haken und Ösen.

Dat wars erstmal. :cheers:


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:54 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