![]() |
DBEdit wird mit Leerzeichen gefüllt...
Ich habe hier ein Problem mit TDBEdit Feldern.Diese werden nach dem abspeichern in ihrer Gesamtgröße mit Leerzeichen gefüllt. Habe es schon mit der Trim-Funktion versucht,aber wenn ich in ein anderes DBEdit Feld reingehe,dann ist das wieder der Fall mit den Leerzeichen.
Hier die Routine, die ich bislang verwendet habe: dbedit.OnEnter := OnFieldGetText;
Delphi-Quellcode:
Ich hoffe mir kann da weitergeholfen werden. :|
procedure TForm2.OnFieldGetText(Sender: TObject);
begin with Sender as TDBEdit do begin Text := Trim(Text); end; end; Moony [edit=sakura]DELPHI.Tags gesetzt. Mfg, sakura[/edit] |
Re: DBEdit wird mit Leerzeichen gefüllt...
was liegt denn für eine Datenbank dahinter?
welche DB-Datentypen verwendest Du? |
Re: DBEdit wird mit Leerzeichen gefüllt...
Es ist eine normale Access Datenbank und die Typen sind normale Textfelder. Erst wenn etwas in dieses Feld eingetragen wird und dann abgespeichert wird, dann die restliche Länge des Feldes mit Leerzeichen gefüllt.
|
Re: DBEdit wird mit Leerzeichen gefüllt...
Da liegt das generelle "Problem" einer Datenbank dahinter: Felder werden eben bis zur maximalen Länge mit Leerzeichen aufgefüllt. Eine Lösungsmöglichkeit ist es, nicht mit TBEdit sondern mit TEdits zu arbeiten. Die TBEdit-Elemente versteckst du (DBEdit1.Visible := False). Den Benutzer lässt du dann an den Edits arbeiten, in denen du den Text mit Trim einfügst. Sobald der User dann das Edit verlässt schreibst du den Text zurück ins DBEdit. Eine 2. Möglichkeit wäre es, gar nicht mit TDBEdit zu arbeiten, sondern alles manuell über SQL zu bearbeiten. Ist zwar nicht ganz so einfach, dafür aber viel systemnaher und du hast viel mehr Möglichkeiten.
|
Re: DBEdit wird mit Leerzeichen gefüllt...
Schon,aber gibt es eine einfachere Methode mit DBEdit-Feldern zu arbeiten, aber dennoch nicht die Doppelzuweisung mit den normalen Edit-Feldern? SQL ist ja auch zusätzliche arbeit, da den DBEdit-Feldern automatisch der Datenbankinhalt übergeben wird.:(
Moony |
Re: DBEdit wird mit Leerzeichen gefüllt...
Hatte vor 2 Minuten ein ähnliches Problem.
Bei mir lag es an dem Feldtyp Char (mit 64 Zeichen). Bei Abfragen wurden die Strings immer auf die volle Länge von 64 Zeichen mit Leerzeichen aufgefüllt. Die Lösung war den Datentyp in VarChar zu ändern. Das Problem tritt übrigens bei der MSSQL Datenbank auf nicht bei der MySQL. Da ich für beide Datenbanken Abfrageroutinen bauen muss, komme ich bei der MySQL zu einem anderen Riesenproblemm, das ich gleich posten werde. Vielleicht kann mir dort jemand helfen ;) Gruß! Tomektor |
Re: DBEdit wird mit Leerzeichen gefüllt...
:hi:
Moony schrieb, dass es eine ACCESS-Datenbank ist. Access kennt keine KEINE VARCHARs :twisted: Deshalb haben Textfelder in Access IMMER die volle definierte Länge und verbrauchen entsprechend Speicherplatz :? :coder: |
Re: DBEdit wird mit Leerzeichen gefüllt...
Zitat:
(Bei Verwendung von Adodataset) Woki |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:12 Uhr. |
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