AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Primary Key ANALYSE

Ein Thema von robroy85 · begonnen am 14. Okt 2005 · letzter Beitrag vom 14. Okt 2005
Antwort Antwort
robroy85

Registriert seit: 6. Nov 2004
Ort: Norderstedt
42 Beiträge
 
#1

Primary Key ANALYSE

  Alt 14. Okt 2005, 11:17
Datenbank: MS SQL • Version: 7.0 • Zugriff über: DELPHI/ADO
Hallo Community!

Ich habe eine Warenwirtschaft auf MS SQL 7.0 Basis
Ich möchte gerne wissen wie der Primary Key von der Warenwirtschaft erstellt wird!?!?
Dazu habe ich einfach mal ein paar Kundeneinträge hintereinander geschrieben und siehe da:
1. Die IDs sind fortlaufend (wer hätte es gedacht)
2. wenn man die 10stellige ID als Hexadezimalzahl sieht und umwandelt kommt nur Müll heraus(Sonderzeichen)
3. Es scheint mir als wärs eine zeitlich abhängige Funktion, denn wenn ich mir zwischen zwei Kundeneinträgen Zeit gelassen hab, so ist auch die Differenz ziwschen den jeweiligen IDs größer!

Kann mir jemand helfen, den Aufbau bzw die "Herstellung" weiter zu analysieren?
Im SQL Server Enterprise Manager steht folgendes zur ID:
Name: Kundenid, Typ: varchar, Größe 10 und natürlich NULL nicht erlaubt!

schönen gruß, robert

Hier die Beispielliste von Einträgen
kundenid Kundennumm
---------- --------------------
434f7a9209 010001
434f7a97de 010002
434f7aa14b 010003
434f7aa542 010004
434f7aa76b 010005
434f7aaad4 010006
434f7aacaf 010007
434f7aae22 010008
434f7ab40f 010009
434f7b0f86 010010
434f7b1113 010011
434f7b1348 010012
434f7b14a9 010013
434f7b15a9 010014
434f7b165b 010015
434f7b175b 010016
434f7b180d 010017
434f7b19ee 010018
434f7b1b71 010019
434f7b1c42 010020
434f7b41a5 010021
434f80a238 010022
434f80d213 010023
  Mit Zitat antworten Zitat
robroy85

Registriert seit: 6. Nov 2004
Ort: Norderstedt
42 Beiträge
 
#2

Re: Primary Key ANALYSE

  Alt 14. Okt 2005, 13:02
Ich hab mal einige Einträge von Hexadezimal in Dezimal gewandelt.

So wird aus: 43 4f 6e dd d4 => 67 79 110 221 212
und aus: 43 4f 7a ac af => 67 79 122 172 175

Könnte das auf einem Timestamp basieren?

ich habe mal scherzeshalber meine Systemzeit auf den 14.10.1985 gestellt und siehe da der Eintrag hat folgende ID bekommen:

1d b0 fd 3d 71 also dezimal: 29 176 253 61 113


HAt jemand einen Ansatz/ eine weitere Idee für mich?
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#3

Re: Primary Key ANALYSE

  Alt 14. Okt 2005, 13:19
Die ersten 4 Byte erhältst du so:

Delphi-Quellcode:
uses
  DateUtils;
begin
  ShowMessage(IntToHex(DateTimeToUnix(Now), 8);
end;
Die letzten beiden Bytes werden Bruchteile von Sekunden sein.

Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von Flocke
Flocke

Registriert seit: 9. Jun 2005
Ort: Unna
1.172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

Re: Primary Key ANALYSE

  Alt 14. Okt 2005, 13:20
Wenn du das letzte Byte weglässt, dann könnte es von der Differenz her ein Unix-Timestamp sein (also Sekunden seit 1.1.1970 GMT).

($434f6eddd4 - $1db0fd3d71) / (20 * 365,2425 * 86400) ~= 256
(Differenz durch Anzahl Sekunden in 20 Jahren)

Vielleicht ist das letzte Byte 1/256 Sekunden zusätzlich?

//EDIT: Mist, zu spät...
Volker
Besucht meine Garage
Aktuell: RtfLabel 1.3d, PrintToFile 1.4
  Mit Zitat antworten Zitat
robroy85

Registriert seit: 6. Nov 2004
Ort: Norderstedt
42 Beiträge
 
#5

Re: Primary Key ANALYSE

  Alt 14. Okt 2005, 15:21
OK, mittlerweile habe ich dann auch herausgefunden, dass man Hexadezimalzahlen nicht Byte für Byte einzeln umrechnen kann

ALso ich habe gleichzeitig einen neuen Eintrag über die Warenwirtschaft gestartet und einen Mausklick später die von marabu angegebene Funktion IntToHex(DateTimeToUnix(Now), 8) aufgerufen und siehe da: DIFFERENZEN

Im Dezimalsystem gerechnet, haben sie eine Differenz von exakt 7200 Sekunden, also 2 Stunden.
Die Programmierer werden sich schon was dabei gedacht haben

Naja, ich bedanke mich für die Hilfe!
Meine Fragen diesbezüglich wären dann erstmal geklärt!


____________________________________
PS: Toll diese Smileys
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#6

Re: Primary Key ANALYSE

  Alt 14. Okt 2005, 15:39
Eine Stunde wegen dalight savings time und eine wegen Greenwich...

marabu
  Mit Zitat antworten Zitat
robroy85

Registriert seit: 6. Nov 2004
Ort: Norderstedt
42 Beiträge
 
#7

Re: Primary Key ANALYSE

  Alt 14. Okt 2005, 15:52
Dann hab ich doch nochmal ne Frage:
Rechnet mein PC mit der Greenwich-Zeit und zeigt mir dann nur das +01:00 im Winter (und das +02:00 im Sommer) in der Uhrzeit an?
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#8

Re: Primary Key ANALYSE

  Alt 14. Okt 2005, 16:31
Im PSDK steht zum Thema Windows System Information / System Time folgendes:

The system bases system time on coordinated universal time (UTC). UTC-based time is loosely defined as the current date and time of day in Greenwich, England.

Das sollte alle Klarheiten beseitigen...

marabu
  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 17:59 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