UUID-Funktionen: Auslesen |
 |
F_UUIDVERSION |
Funktion von adhoc
|
Entrypoint |
uuidversion |
|
Input |
CSTRING(250) |
gültige UUID |
Output |
CSTRING(20) |
Variante und
Version der UUID |
Mögliche Varianten sind:
0 NCS (reserviert für
Rückwärtskompatibilität)
10 die aktuelle
Variante nach RFC4122
110 Microsoft (reserviert für
Rückwärtskompatibilität))
111 reserviert für zukünftige
Varianten
Mögliche Versionen sind:
1
Zeit-basierte
a. mit eindeutiger MAC
Adresse nach IEEE 802-Standard
b. per
Zufallsgenerator erzeugter MAC-Adresse nach IEEE 802-Standard
2
DCE-Sichereitsversion (mit POSIX UIDs)
3
Names(raum)-basierte (mittels MD5
Kodierung)
4
Per Zufallsgenerator erzeugte
5
Namens(raum)-basierte (mittels SHA-1
Kodierung)
Die Funktion liefert z. Zt. folgendes zurück:
V1a
V1b
V3
V4
V5
TestSQL (für TestISO.GDB)
SELECT ART, F_UUIDVERSION(UUID) FROM UUIDTEST ORDER BY UUIDTESTID;
SELECT NULL AS ISCORRECT, F_UUIDVERSION(NULL) FROM RDB$DATABASE; |
  |
F_UUID1TIMESTAMP |
Funktion von adhoc
|
Entrypoint |
uuid1timestamp |
|
Input |
CSTRING(250) |
gültige UUID
Version 1 |
Output |
TIMESTAMP |
Zeitstempel,
wann die UUID Version 1 erzeugt wurde |
Achtung
Diese Funktion
ist in Windows
noch nicht "Thread-Safe", d.h. wenn mehrere User diese Funktion gleichzeitig
aufrufen, kann
das Ergebnis Müll sein! Bitte überprüfen Sie einstweilen durch mehrmaligen Aufruf
das Ergebnis auf Richtigkeit.
Bei nicht
gültigem Input gibt die Funktion den Zeitstempel 31.12.1899 00:00:00
aus (Zeit = 0 - Start der internen InterBase/FireBird Zeitrechnung),
bei FireBird 2.0, wenn gewünscht, <null>.
TestSQL (für TestISO.GDB)
Übergabe einer normalen UUID als Input Paramter (richtig):
SELECT UUIDTESTID, F_UUIDVERSION(UUID), ART, ZEITSTEMPEL AS ISCORRECT,
F_UUID1TIMESTAMP(UUID) FROM UUIDTEST ORDER BY 1;
Übergabe einer komprimierten UUID als Input Paramter statt einer
nornalen UUID:
SELECT UUIDTESTID, F_UUIDVERSION(UUID), ART, NULL AS ISCORRECT,
F_UUID1TIMESTAMP(UUIDCOMPR) FROM UUIDTEST ORDER BY 1;
SELECT NULL AS ISCORRECT, F_UUID1TIMESTAMP(NULL) FROM RDB$DATABASE;
|
  |
F_UUID1COMPRTIMESTAMP |
Funktion von adhoc
|
Entrypoint |
uuid1comprtimestamp |
|
Input |
CSTRING(250) |
gültige
komprimierte UUID Version 1 |
Output |
TIMESTAMP |
Zeitstempel,
wann die UUID Version 1 erzeugt wurde |
Achtung
Diese
Funktion ist in Windows noch nicht
"Thread-Safe", d.h. wenn mehrere User
diese Funktion gleichzeitig
aufrufen, kann
das Ergebnis Müll sein! Bitte überprüfen Sie einstweilen durch mehrmaligen Aufruf
das Ergebnis auf Richtigkeit.
Bei nicht gültigem Input gibt die Funktion den
Zeitstempel 31.12.1899
00:00:00 aus (Zeit = 0 - Start der internen InterBase/FireBird
Zeitrechnung), bei FireBird 2.0, wenn gewünscht, <null>.
TestSQL (für TestISO.GDB)
Übergabe einer komprimierten UUID als Input Paramter (richtig):
SELECT UUIDTESTID, F_UUIDVERSION(UUID), ART, ZEITSTEMPEL AS ISCORRECT,
F_UUID1COMPRTIMESTAMP(UUIDCOMPR) FROM UUIDTEST WHERE UUIDCOMPR IS NOT
NULL ORDER BY 1;
Übergabe einer normalen UUID als Input Paramter statt einer
komprimierten UUID:
SELECT UUIDTESTID, F_UUIDVERSION(UUID), ART, NULL AS ISCORRECT,
F_UUID1COMPRTIMESTAMP(UUID) FROM UUIDTEST ORDER BY 1;
SELECT NULL AS ISCORRECT, F_UUID1COMPRTIMESTAMP(NULL) FROM RDB$DATABASE;
|
  |
F_UUID1MACMAC |
Funktion von adhoc
|
Entrypoint |
uuid1macmac |
|
Input |
CSTRING(250) |
gültige UUID
Version 1a |
Output |
CSTRING(17) |
MAC-Adresse des
Computers, auf dem die UUID erzeugt wurde |
TestSQL (für TestISO.GDB)
Übergabe einer normalen UUID als Input Paramter (richtig):
SELECT UUIDTESTID, F_UUIDVERSION(UUID), ART, MACADRESS AS ISCORRECT,
F_UUID1MACMAC(UUID) FROM UUIDTEST ORDER BY 1;
Übergabe einer komprimierten UUID als Input Paramter statt einer
normalen UUID:
SELECT 'no RFC4122 UUID' AS ISCORRECT, F_UUID1MACMAC(UUIDCOMPR) FROM
UUIDTEST WHERE UUIDCOMPR IS NOT NULL ORDER BY 1;
SELECT NULL AS ISCORRECT, F_UUID1MACMAC(NULL) FROM RDB$DATABASE;
|
  |
F_UUID1MACCOMPRMAC |
Funktion von adhoc
|
Entrypoint |
uuid1maccomprmac |
|
Input |
CSTRING(250) |
gültige
komprimierte UUID Version 1a |
Output |
CSTRING(17) |
MAC-Adresse des
Computers, auf dem die UUID erzeugt wurde |
TestSQL (für TestISO.GDB)
Übergabe einer komprimierten UUID als Input Paramter (richtig):
SELECT UUIDTESTID, F_UUIDVERSION(UUID), ART, MACADRESS AS ISCORRECT,
F_UUID1MACCOMPRMAC(UUIDCOMPR) FROM UUIDTEST WHERE UUIDCOMPR IS NOT NULL
ORDER BY 1;
Übergabe einer normalen UUID als Input Paramter statt einer
komprimierten UUID:
SELECT 'no compressed UUID' AS ISCORRECT, F_UUID1MACCOMPRMAC(UUID) FROM
UUIDTEST ORDER BY 1;
SELECT NULL AS ISCORRECT, F_UUID1MACCOMPRMAC(NULL) FROM RDB$DATABASE; |
     |