Entwickler-Ecke

Datenbanken - Float speichern in SQL Databank Problemmit de Länge...


Sef - Di 21.08.07 19:41
Titel: Float speichern in SQL Databank Problemmit de Länge...
Ich habe ein Problem das ich nicht lösen kann.

In SQL ist eine Datei met ein Feld A, dass ist vom type Float.
In dieses Feld will ich eine Float Wert speichern mittels eine Stored Procedure.

In Delphi hab ich für dieses Feld folgendes:


Delphi-Quelltext
1:
SP_PROC.CreateParameter('FloatFeld',ftFloat,pdInput,0,FloatWert);                    



Wenn in der Variabele FloatWert folgendes ist gespeichert: 123456.789 dann ist nachher in der Datei noch übrig geblieben: 123457

Andere Werte für die Länge, haben kein Einfluss.

Im ganzen gelingt es mir nicht eine "grössere" Zahl von Ziffern zu speichern.

Ich muss was falsch machen aber keine Ahnung wie ich diese Rätsel lösen kann.
Wer hat eine Idee?

Moderiert von user profile iconKlabautermann: Delphi-Tag eingefügt.


ene - Mi 22.08.07 07:10

Hi,

hast du es mal mit einem Kommawert versucht?


Sef - Mi 22.08.07 09:35

Leider.

In Delpi hab ich folgen Code:

Delphi-Quelltext
1:
SP_PROC.Parameters.CreateParameter('@xcoordinaat', ftFloat, pdInput, 0, 12345678,12345);                    


Und trotzdem wird nur 12345700 gespeichert.

Irgendwo hab ich gelesen dass der default Wert für die Anzahl von significante Ziffern, 7 sei.
Dass scheint dan auch hier der Fall zu sein.
In SQL sind jedoch 15 Ziffern significant.
Also irgendwo muss es Delphi klar gemacht werden dass ich 15 statt 7 Ziffern sehen will.
Es gibt eine Hinweis auf die Configuration, aber den kann ich nicht verfolgen.

Noch etwas:

Ich habe es weiter untersucht. Wenn ich direct nach dem SP_PROC eine "normale" UPDATE von der Tabelle mache (ADOCommand), mit SET xcoordinaat=12345678,12345 dann wird die richte Zahl gespeichert.
Also definitiv scheint mir etwas los zu sein mit der SP_PROC und CreateParameters für eine Float.