Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   GUIDToString: welche Feldgrösse in der DB? (https://www.delphipraxis.net/188431-guidtostring-welche-feldgroesse-der-db.html)

Zacherl 3. Mär 2016 15:38

AW: GUIDToString: welche Feldgrösse in der DB?
 
Zitat:

Zitat von Delbor (Beitrag 1331950)
Demnach lege ich den Datentyp in der DB als 'VARBINARY(16)' fest.

Besser BINARY mit fixer Länge, falls es diesen Typ äquivalent zu CHAR/VARCHAR geben sollte. Die Länge der GUID bleibt ja immer 16 und ändert sich nicht.

himitsu 3. Mär 2016 16:01

AW: GUIDToString: welche Feldgrösse in der DB?
 
Der Zeichensatz/CharSet/Collation ist erstmal egal, das die GUID als String nur ASCII ist und das praktisch überall rein passt.

Bei BINARY(16) passt die GUID binär rein und bei BINARY(38) bzw. CHAR(38) als String.

Und vom Zeichensatz/CharSet/Collation des Feldes (Spalte) hängt ab, wie viel Speicher das Ding intern braucht.

RSF 3. Mär 2016 22:32

AW: GUIDToString: welche Feldgrösse in der DB?
 
Ich benutze GUID in ID-Felder als CHAR(32)
Delphi-Quellcode:
function DB_GUID: String;
var
  NewGUID: TGUID;
  S: string;
begin
 CreateGUID(NewGUID);
 S:=GUIDToString(NewGUID);
 // Sonderzeichen entfernen ({,},-)
 while Pos('{', S) > 0 do
    Delete(S,Pos('{', S),1);
 while Pos('}', S) > 0 do
    Delete(S,Pos('}', S),1);
 while Pos('-', S) > 0 do
    Delete(S,Pos('-', S),1);
 Result:=S; // CAHR(32)
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:56 Uhr.
Seite 2 von 2     12   

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