AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi DBEdit wird mit Leerzeichen gefüllt...
Thema durchsuchen
Ansicht
Themen-Optionen

DBEdit wird mit Leerzeichen gefüllt...

Ein Thema von Moony · begonnen am 8. Aug 2003 · letzter Beitrag vom 17. Aug 2003
Antwort Antwort
Moony

Registriert seit: 29. Jul 2003
Ort: Essen
454 Beiträge
 
Delphi 2010 Professional
 
#1

DBEdit wird mit Leerzeichen gefüllt...

  Alt 8. Aug 2003, 10:05
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:
procedure TForm2.OnFieldGetText(Sender: TObject);
begin
  with Sender as TDBEdit do
  begin
    Text := Trim(Text);
  end;
end;
Ich hoffe mir kann da weitergeholfen werden.

Moony

[edit=sakura]DELPHI.Tags gesetzt. Mfg, sakura[/edit]
  Mit Zitat antworten Zitat
mr2

Registriert seit: 3. Mai 2003
140 Beiträge
 
Delphi 2006 Enterprise
 
#2

Re: DBEdit wird mit Leerzeichen gefüllt...

  Alt 8. Aug 2003, 10:13
was liegt denn für eine Datenbank dahinter?
welche DB-Datentypen verwendest Du?
  Mit Zitat antworten Zitat
Moony

Registriert seit: 29. Jul 2003
Ort: Essen
454 Beiträge
 
Delphi 2010 Professional
 
#3

Re: DBEdit wird mit Leerzeichen gefüllt...

  Alt 8. Aug 2003, 10:22
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.
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#4

Re: DBEdit wird mit Leerzeichen gefüllt...

  Alt 11. Aug 2003, 15:18
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.
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Moony

Registriert seit: 29. Jul 2003
Ort: Essen
454 Beiträge
 
Delphi 2010 Professional
 
#5

Re: DBEdit wird mit Leerzeichen gefüllt...

  Alt 13. Aug 2003, 14:24
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
  Mit Zitat antworten Zitat
Tomektor

Registriert seit: 16. Jul 2003
Ort: Hannover
15 Beiträge
 
#6

Re: DBEdit wird mit Leerzeichen gefüllt...

  Alt 15. Aug 2003, 10:22
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
  Mit Zitat antworten Zitat
Alfons_G

Registriert seit: 7. Jun 2002
Ort: München
296 Beiträge
 
Delphi 2007 Architect
 
#7

Re: DBEdit wird mit Leerzeichen gefüllt...

  Alt 17. Aug 2003, 12:40

Moony schrieb, dass es eine ACCESS-Datenbank ist. Access kennt keine KEINE VARCHARs
Deshalb haben Textfelder in Access IMMER die volle definierte Länge und verbrauchen entsprechend Speicherplatz

Alfons Grünewald



Alfons Grünewald
  Mit Zitat antworten Zitat
woki

Registriert seit: 29. Mär 2003
563 Beiträge
 
Delphi 2006 Architect
 
#8

Re: DBEdit wird mit Leerzeichen gefüllt...

  Alt 17. Aug 2003, 14:55
Zitat:
Moony schrieb, dass es eine ACCESS-Datenbank ist. Access kennt keine KEINE VARCHARs
Deshalb haben Textfelder in Access IMMER die volle definierte Länge und verbrauchen entsprechend Speicherplatz
Das kann nicht richtig sein, Access kennt weder Char noch VarChar, und der Datentyp Text, kann 0 bis 255 Zeichen aufnehmen, und speichert immer nur soviel wie übergeben wurde, ich hab das auch schnell nochmal probiert.
(Bei Verwendung von Adodataset)

Woki
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:18 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