Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Ist das ein normales MS SQL Express Speicherverhalten? (https://www.delphipraxis.net/122354-ist-das-ein-normales-ms-sql-express-speicherverhalten.html)

Piro 14. Okt 2008 19:51

Datenbank: MS SQL 2005 • Version: Express • Zugriff über: ADO

Ist das ein normales MS SQL Express Speicherverhalten?
 
Guten Abend,

ich speichere meine Daten in die oben genannte DB. Sie enthält Tabellen mit mehrere Spalten, die unteranderem vom Type nchar(50) sind. Die 50 steht für die Länge des DB Feldes.


Speicherbeispiel anhand der Spalte "Vorname" und dem Wert "Hugo". Nach der Speicherung ist der Wert "Hugo" in der Spalte "Vornamen" gespeichert aber der Rest ist mit Leerzeichen aufgefüllt. Also so, dass die Feldlänge von 50 voll genutzt wird.
Delphi-Quellcode:
'Hugo                                       '
Wenn ich jetzt die Daten wieder aus der DB lesen möchte, habe ich immer Werte, die 50 Zeichen lange sind.

Ist das ein normales Verhalten der DB, den Speicherplatz komplett zu verwenden oder habe ich eine Einstellung nicht gesetzt?

Vielen Dank im voraus. Ich hoffe einer kennt das Problem. :(

Sven

mkinzler 14. Okt 2008 19:52

Re: Ist das ein normales MS SQL Express Speicherverhalten?
 
Trimme den wert doch beim Auslesen

mr2 14. Okt 2008 20:02

Re: Ist das ein normales MS SQL Express Speicherverhalten?
 
Du solltest besser nvarchar(50) verwenden, dann füllt die Datenbank nicht mit Leerzeichen auf.

mr2

Bernhard Geyer 14. Okt 2008 20:04

Re: Ist das ein normales MS SQL Express Speicherverhalten?
 
char und varchar (Transact-SQL)

omata 14. Okt 2008 20:06

Re: Ist das ein normales MS SQL Express Speicherverhalten?
 
Oder Varchar, Varchar kann maximal 8000 Zeichen aufnehmen. NVarchar maximal 4000.

Piro 14. Okt 2008 20:17

Re: Ist das ein normales MS SQL Express Speicherverhalten?
 
Danke für die zahlreichen Antworten. Das hatte ich nicht gewußt, dass die Typen solche unterschiedlichen Eiegnschaften haben.

Ich werde dann auf nvarchar umsteigen. Vielen Dank.

Schönen Abend.

alzaimar 14. Okt 2008 21:40

Re: Ist das ein normales MS SQL Express Speicherverhalten?
 
Der Unterschied ist doch schon am Namen erkennbar (VarChar vs. Char). VarChar ist zwar etwas 'hübscher' aber dafür bei UPDATE-Operationen langsamer. In Hochgeschwindigkeitsumgebungen ist das ein nicht zu unterschätzender Nachteil. Performancefetischisten tendieren zu 'CHAR(X) NOT NULL'.


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