AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Nur 4 Kommastellen bei der Anzeige?
Thema durchsuchen
Ansicht
Themen-Optionen

Nur 4 Kommastellen bei der Anzeige?

Ein Thema von Tau · begonnen am 11. Nov 2005 · letzter Beitrag vom 11. Nov 2005
Antwort Antwort
Tau

Registriert seit: 17. Mär 2003
Ort: Bludenz
221 Beiträge
 
Delphi 7 Enterprise
 
#1

Nur 4 Kommastellen bei der Anzeige?

  Alt 11. Nov 2005, 01:10
Datenbank: MSDN • Version: 2000 • Zugriff über: ADO
Hallo Leute

kann mir einer folgendes erklären.

Warum im SQL-Server in der spalte 6,55957 (decimal(18,6))steht kann und ich in
der Anzeige nur 6,5596 (DBText, DBGrid DBEdit usw.) herausbekomme.

Das ist mir ein Rätsel. Kann es an der Adokomponente von Delphi oder am Windows liegen?

ich Stehe hier echt auf dem schlauch.

HILFE


Tau
http://www.quad-offroad.com
wer kämpft kann verlieren aber wer nicht kämpft hat verloren
( Delphi 7 )
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#2

Re: Nur 4 Kommastellen bei der Anzeige?

  Alt 11. Nov 2005, 02:12
hehe, Datenbank MSDN. 8) Also da ist eine Datenbank. Und dann noch ein DBEdit. Wo kriegt das die anzuzeigenden Daten her ? Von einer Datasource. Und wie kriegt die sie aus der DB ? Logisch : mit einem Dataset. Und da hast Du nicht gesagt, welches verwendet wird. Oder ist ADO ein Dataset ? Da liegt der Hund jedenfalls begraben.
Gruß
Hansa
  Mit Zitat antworten Zitat
Tau

Registriert seit: 17. Mär 2003
Ort: Bludenz
221 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Nur 4 Kommastellen bei der Anzeige?

  Alt 11. Nov 2005, 03:30
Hallo Hansa

DataSet = TADOQuery

wieso sollte da der Hund begraben sein?

jetzt verstehe ich erst recht nur Bahnhof


Tau


[Edit]PS: Wer Rechtschreibfehler findet darf sie auch behalten[Edit]
http://www.quad-offroad.com
wer kämpft kann verlieren aber wer nicht kämpft hat verloren
( Delphi 7 )
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#4

Re: Nur 4 Kommastellen bei der Anzeige?

  Alt 11. Nov 2005, 11:58
Hab mal nachgeguckt. Zahlenformate kann das nicht. Dann wirst Du wohl persistente Gelder eingebaut haben. rechte Maustaste -> Feldeditor. Steht da was ?
Gruß
Hansa
  Mit Zitat antworten Zitat
Tau

Registriert seit: 17. Mär 2003
Ort: Bludenz
221 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Nur 4 Kommastellen bei der Anzeige?

  Alt 11. Nov 2005, 12:23
Hallo Hansa

Der Feldeditor ist leehr er hat keine Felder drin.

Tau
http://www.quad-offroad.com
wer kämpft kann verlieren aber wer nicht kämpft hat verloren
( Delphi 7 )
  Mit Zitat antworten Zitat
Tau

Registriert seit: 17. Mär 2003
Ort: Bludenz
221 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Nur 4 Kommastellen bei der Anzeige?

  Alt 11. Nov 2005, 12:58
Hallo Hansa

Habe die Ursache gefunden für meine Probleme.

Ich lasse meine Feldwerte leer das ist das Problem. Delphi interpretiert den FeldType Decimal(18,6) als BCDFeld

Auszug aus der Delphi Hilfe

Zitat:
Die Funktion erstellt eine neue Variante, deren Wert intern als TBcd-Wert gespeichert wird.

Unit

FMTBcd

Kategorie

Variantenunterstützung

Delphi-Syntax:

procedure VarFMTBcdCreate(var aDest: Variant; const ABcd: TBcd); overload;
function VarFMTBcdCreate: Variant; overload;
function VarFMTBcdCreate(const ABcd: TBcd): Variant; overload;
function VarFMTBcdCreate(const AValue: string, Precision, Scale: Word): Variant; overload;
function VarFMTBcdCreate(const AValue: Double; Precision: Word = 18; Scale: Word = 4): Variant; overload;

C++ Syntax:

extern PACKAGE void __fastcall VarBcdCreate(Variant &aDest, const TBcd ABcd);
extern PACKAGE Variant __fastcall VarBcdCreate(void);
extern PACKAGE Variant __fastcall VarBcdCreate(const TBcd ABcd);
extern PACKAGE Variant __fastcall VarBcdCreate(const AnsiString AValue, Word Precision, Word Scale);

extern PACKAGE Variant __fastcall VarBcdCreate(const double AValue, Word Precision, Word Scale);

Beschreibung

Mit VarBcdCreate können Sie eine Variante erstellen, deren Wert als TBcd-Wert gespeichert wird.

Bei Verwendung der ersten Syntax hat die in aDest zurückgegebene Variante denselben Wert wie ABcd.

Bei Verwendung der zweiten Syntax (es werden keine Argumente übergeben), hat die zurückgegebene Variante den Wert NullBcd.

Bei Verwendung der dritten Syntax hat die zurückgegebene Variante denselben Wert wie ABcd.

Bei Verwendung der anderen Syntaxvarianten wird der Parameter AValue in einen TBcd-Wert mit der angegebenen Genauigkeit (Precision) und Anzahl Dezimalstellen (Scale) konvertiert. Das Ergebnis wird der Variante als Wert zugewiesen.
Besonders der Letzte Absatz ist interessant.

Zitat:
function VarFMTBcdCreate(const AValue: Double; Precision: Word = 18; Scale: Word = 4): Variant; overload;
und
Zitat:
Bei Verwendung der anderen Syntaxvarianten wird der Parameter AValue in einen TBcd-Wert mit der angegebenen Genauigkeit (Precision) und Anzahl Dezimalstellen (Scale) konvertiert. Das Ergebnis wird der Variante als Wert zugewiesen.[/
Jetzt meine Frage wie kann ich mein Problem mit so wenig wie möglich Aufwand ändern. (~800 TADOQuery)


schöne Grüsse
Tau
http://www.quad-offroad.com
wer kämpft kann verlieren aber wer nicht kämpft hat verloren
( Delphi 7 )
  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 01:36 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