AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Datentyp DateTime und Millisekunden
Thema durchsuchen
Ansicht
Themen-Optionen

Datentyp DateTime und Millisekunden

Ein Thema von BigAl · begonnen am 17. Jan 2009 · letzter Beitrag vom 25. Mai 2009
 
BigAl

Registriert seit: 6. Sep 2008
Ort: Kehl
495 Beiträge
 
Delphi 12 Athens
 
#1

Datentyp DateTime und Millisekunden

  Alt 17. Jan 2009, 21:21
Datenbank: MSSQL • Version: 2005 • Zugriff über: "SQL Native Client" und ADO
Hallo zusammen,

in einer Tabelle speicher ich Zeiten und benötige dafür auch die Millisekunden. Bisher habe ich den "Microsoft OLE DB Provider for SQL Server" verwendet und die Daten wie folgt eingefügt:

Delphi-Quellcode:

{ INSERT erzeugen (gekürzt) }
QueryAdd.SQL.Clear;
QueryAdd.SQL.Add('INSERT ProdData ' +
                 '(TimeGMT)' +
                 'VALUES'+
                 '(:TimeGMT)');

{ Parameter "Time" als String, damit Millisekunden gespeichert werden können }
QueryAdd.Parameters.ParamByName('TimeGMT').DataType := ftString;

{ Zeitwert zuweisen }
QueryAdd.Parameters.ParamByName('TimeGMT').Value := FormatDateTime('yyyy.mm.dd hh:nn:ss.zzz', DataLogRec.TimeGMT);

{ INSERT ausführen }
QueryAdd.ExecSQL;
Das hat auch immer bestens funktioniert. Aus diversen Gründen habe ich jetzt aber auf den "SQL Native Client" umgestellt. Da geht es so nicht mehr. Wenn ich das ganze wie folgt kürze, werden auch nur immer ganze Sekunden gespeichert:

Delphi-Quellcode:

{ INSERT erzeugen (gekürzt) }
QueryAdd.SQL.Clear;
QueryAdd.SQL.Add('INSERT ProdData ' +
                 '(TimeGMT)' +
                 'VALUES'+
                 '(:TimeGMT)');

{ Zeitwert zuweisen }
QueryAdd.Parameters.ParamByName('TimeGMT').Value := DataLogRec.TimeGMT;

{ INSERT ausführen }
QueryAdd.ExecSQL;
Das Problem ist halt, dass pro Sekunde mehrere Werte erzeugt werden können. Im Extremfall sind es 10 Werte pro Sekunde. Diese werden vor der Zuweisung immer auf Zehntelsekunden gerundet. Da es sich um ein Datenfeld mit einem eindeutigen Index handelt kommt natürlich die "Duplicate Key" Fehlermeldung...

Hat irgendwer eine Idee wie ich dem Datenfeld die Sekundenbruchteile beibringen kann?

Vielen Dank schonmal

Alex
Man sollte nie so viel zu tun haben, dass man zum Nachdenken keine Zeit mehr hat. (G.C. Lichtenberg)
  Mit Zitat antworten Zitat
 


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 16:45 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