Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Float Wert per ADO in Access Datenbank (https://www.delphipraxis.net/130626-float-wert-per-ado-access-datenbank.html)

EC-PC 11. Mär 2009 12:10

Datenbank: MS Access • Version: 2009 • Zugriff über: Ado Connect

Float Wert per ADO in Access Datenbank
 
Hi zusammen,

vielleicht ist dieses Problem so trivial dass man es übersieht,
aber ich dreh allmählich am Rad ...

Ich versuche einen Gleitkommawert per ADO Verbindung in eine Access Tabelle zu schreiben,
irgenwie scheint die Jet Engine nur amerikanische Dezimaltrennzeichen zu unterstützen.

Aus 10,22 wird 1022, aus 43,87 wird 4387 ich finde einfache keine Lösung, weil die
Borland DB Komponenten wiederum kein 11.22 akzeptiert ...

für einen Tipp wäre ich dankbar ( warum hat eigentlich sonst niemand dieses problem ? )

Gruß Wolfgang

DeddyH 11. Mär 2009 12:23

Re: Float Wert per ADO in Access Datenbank
 
Wie versuchst Du es denn? Per ADOQuery mit SQL-Parametern? Das sollte eigentlich funktionieren.

EC-PC 11. Mär 2009 12:28

Re: Float Wert per ADO in Access Datenbank
 
Ich benutze eine ADO Connection und ADOTables,

funktioniert auch alles, bis auf die Spalte mit Floats ( Währung ) ...

Gruß Wolfgang

DeddyH 11. Mär 2009 12:32

Re: Float Wert per ADO in Access Datenbank
 
Und wie sollen die neuen Werte eingetragen werden? Hast Du ein editierbares DBGrid oder gibt es da extra Eingabefelder?

nahpets 11. Mär 2009 12:33

Re: Float Wert per ADO in Access Datenbank
 
Hallo,
probier mal, ob Dir die FormatSettings weiterhelfen:

Delphi-Quellcode:
Var
  myFormatSettings   : TFormatSettings;
...
begin
  GetLocaleFormatSettings(LOCALE_SYSTEM_DEFAULT,myFormatSettings);
  myFormatSettings.DecimalSeparator := '.'; // <- oder ','?
...
  AdoTable.FieldByName('DeineFloatSpalte').AsFloat := DeinFloatWert;
  // oder
  AdoTable.FieldByName('DeineFloatSpalte').AsString := FloatToStr(DeinFloatWert, myFormatSettings);
...
end;
Stimmen die Einstellungen für den Dezimaltrenner beim Betriebssystem mit denen Deines Programmes überein?

EC-PC 11. Mär 2009 12:38

Re: Float Wert per ADO in Access Datenbank
 
Hab ich alles schon versucht,

die Lokalen einstellungen sind korrekt.
Dezimaltrenner = ','
TausenderTrenner = '.'

Wenn ich eine Float in ein BDEdit Feld eingebe wird sie richtig angezeigt,
aber nach dem post wird aus 12,34 1234,00.

Gruß Wolfgang

EC-PC 12. Mär 2009 10:13

Re: Float Wert per ADO in Access Datenbank
 
Sowas hab ich noch nicht erlebt,

Ich hänge jetzt seit 2,5 tagen an diesem Problem fest und
habe noch keine funktionierende Lösung. Bin ich wirklich der
einzige mit diesem Phenomän ?

Oder weiß zufällig jemand wie man im Jet 4.0 Verbindungs String
den Dezimal Seperator setzen / verändern kann ?

Gruß Wolfgang

nahpets 12. Mär 2009 11:13

Re: Float Wert per ADO in Access Datenbank
 
Hallo,

habe gerade mal eine kleine Applikation mit 1 DBEdit, 1 DBGrid, 1 DBNavigator zusammengedaddelt. Zugriff auf eine Access-DB per ADO-Connection und ADO-Table.
Eingabe von 47,11 im DBEdit führt in der Datenbank zu 47,11.
Sprich. Den Fehler, der Dich zum "Wahnsinn" treibt, kann ich bei mir nicht nachvollziehen.
Daraus schließe ich, dass irgendwo irgendeine Einstellung bei Deiner Datenbank, dem Betriebssystem oder innerhalb der Applikation zu einem unerwünschten Seiteneffekt führt.
[edit]hat Schreib- und Grammatikfehler gefunden[/edit]

EC-PC 12. Mär 2009 12:30

Re: Float Wert per ADO in Access Datenbank
 
Was für eine Access Version benutz du ?
und mit welcher Jet Engine ?

---------------

Okay ich habs,
dein proggy funzt einwandfrei, bis ich die datenbank einmal mit Access 2007 öffne,
dann hab ich das selbe Problem wieder. Vielen lieben Dank für Deine Mühe.

Jetz weiß ich zumindest woran es liegt.

Gruß Wolfgang

nahpets 12. Mär 2009 13:10

Re: Float Wert per ADO in Access Datenbank
 
Hallo,

benutze Access 2003.

Die von Dir gelieferte Begründung ist doch wohl nicht Dein Ernst?
D. h.: Wer mit Delphi gegen Accessdatenbanken arbeitet und dann zufällig auf dem System ein Officeupdate gemacht wird und die Datenbank dann zufällig mal mit dem neuen Access geöffnet wird, hat anschließend ein Problem? :gruebel: :twisted: :cry:

Der Seiteneffekt ist aber sehr ärgerlich.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:56 Uhr.
Seite 1 von 2  1 2      

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