Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi warum definierte varchar-größe egal? (https://www.delphipraxis.net/66325-warum-definierte-varchar-groesse-egal.html)

sancho1980 28. Mär 2006 16:12

Datenbank: interbase • Version: 6.5 • Zugriff über: ibx, ibexpert

warum definierte varchar-größe egal?
 
hallo,
ich hab mal eine frage:
ich arbeite an einer delphi-anwendung, welche auf eine interbase-datenbank zugreift.
nun gibt es in dieser datenbank eine domain varchar_80 definiert mit varchar(80)
der zeichensatz ist unicode_fss und ich benutze für die darstellung der datenbankfelder in delphi die unicode-fähigen tnt-controls
mir ist aufgefallen, dass es trotzdem möglich ist, in diese felder strings mit mehr(!!) als 80 zeichen zu speichern
wie kommt das?

mkinzler 28. Mär 2006 16:22

Re: warum definierte varchar-größe egal?
 
Die Beschränkung gilt nur in der Datenbank. In der Datenbank werden die Strings dann aber auf 80 gekürzt. Wenn du verhindern willst, daß "zu lange" Strings eingegeben werden mußt du im Eingabecontrol verhindern.

sancho1980 28. Mär 2006 16:30

Re: warum definierte varchar-größe egal?
 
genau das ist das eigenartige:
wenn ich den string poste und die datenbank schließe und wieder öffne ist er immer noch genauso lang!!!
meine vermutung war, dass es irgendwie mit der unicode-geschichte zusammenhängt...aber wie?!?!

mkinzler 28. Mär 2006 16:35

Re: warum definierte varchar-größe egal?
 
Du kannst in ein Datenbankfeld welches 80 Zeichen lang ist mehr als 80 Zeichen einfügen?

sancho1980 28. Mär 2006 16:36

Re: warum definierte varchar-größe egal?
 
genau das meine ich

mkinzler 28. Mär 2006 16:44

Re: warum definierte varchar-größe egal?
 
Zitat:

meine vermutung war, dass es irgendwie mit der unicode-geschichte zusammenhängt...aber wie?!?!
Unicode heißt ja eigentlich nur das pro Zeichen mehr als 8 Bit zur Verfügung stehen.

Ich habe mal zum test im IBExpert eine FB Daten mit einem Varchar Feld mit Zeichensatz unicode_fss angelegt. Hier werden nur die beschränkte Menge angenommen.

sancho1980 28. Mär 2006 16:49

Re: warum definierte varchar-größe egal?
 
kennst du die tnt-controls für delphi?
scheint irgendwas mit der übersetzung nicht ganz zu funktionieren?

mkinzler 28. Mär 2006 16:51

Re: warum definierte varchar-größe egal?
 
Kannst du im IBExpert auch längere Zeichenketten eingeben?
Delphi-Quellcode:
scheint irgendwas mit der übersetzung nicht ganz zu funktionieren?
Du meinst dass er mehrere (ASCII-)Zeichen in eine Unicodezeichen schreibt?

sancho1980 28. Mär 2006 16:55

Re: warum definierte varchar-größe egal?
 
so ungefähr
aber eigentlich sind die tnt-controls ja unicode-fähig

NormanNG 28. Mär 2006 18:03

Re: warum definierte varchar-größe egal?
 
Hi,

Zitat:

Zitat von sancho1980
genau das ist das eigenartige:
wenn ich den string poste und die datenbank schließe und wieder öffne ist er immer noch genauso lang!!!
meine vermutung war, dass es irgendwie mit der unicode-geschichte zusammenhängt...aber wie?!?!

kann es sein, dass der Wert "einfach noch drin" steht? Oder beendest du dein Programm, startest neu und hast wieder den kompletten String? Würde mich allerdings sehr wundern!


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:46 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz