Double
Moderator: Moderatoren
Double
hi, ich mal wieder, mit einer wahrscheinlich einfachen Frage :
ich möchte gerne aus einem Calc-Sheet Daten in meine Datenbank einlesen. Das Feld der Datenbank ist als Double mit 2 Nachkommastellen Formatiert, die Ausgelesene Zelle als Zahl mit 2 Nachkommastellen.
Das Problem : Als "ganze" Zahl (2,00 / 3,00) funktioniert, also "kommazahl" funktionierts nicht (Coulumn does not match oder so)
Nu hab ich mal gelesen, daß ich als Dezimaltrenner einen Punkt benutzen muß. Nur wie krieg ich den beim Auslesen einer Zelle, die als Zahl formatiert ist, hin ?
lg
Andreas
ich möchte gerne aus einem Calc-Sheet Daten in meine Datenbank einlesen. Das Feld der Datenbank ist als Double mit 2 Nachkommastellen Formatiert, die Ausgelesene Zelle als Zahl mit 2 Nachkommastellen.
Das Problem : Als "ganze" Zahl (2,00 / 3,00) funktioniert, also "kommazahl" funktionierts nicht (Coulumn does not match oder so)
Nu hab ich mal gelesen, daß ich als Dezimaltrenner einen Punkt benutzen muß. Nur wie krieg ich den beim Auslesen einer Zelle, die als Zahl formatiert ist, hin ?
lg
Andreas
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: Double
Calc nach Datenbank ... gibst Du uns noch weitere Informationen?
OOo Version? Welche Datenbank? Wie "einlesen"?
Bei HSQLDB müssen meine nummerischen Zellen "englisch" formatiert sein (Darstellung mit Punkt als Dezimaltrenner), damit ein drag&drop Einfügen in den F4 Browser gelingt.
Meintest Du diese Bearbeitungsstelle?
OOo Version? Welche Datenbank? Wie "einlesen"?
Bei HSQLDB müssen meine nummerischen Zellen "englisch" formatiert sein (Darstellung mit Punkt als Dezimaltrenner), damit ein drag&drop Einfügen in den F4 Browser gelingt.
Meintest Du diese Bearbeitungsstelle?
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Re: Double
Hi,
genau das mein ich.
Ich lese eine Zelle per Makro aus (VAR1 = oSheet.getcellrangebyname("A1").value) und füge diese Variable per SQL Befehl im selben Makro in meine HSQLDB ein (Insert Into ""Tabelle"" (""AusgelesenerWert"") Values = (" & VAR1 & ") )
Nur wie kriege ich diesen blöden punkt in Calc hin, bzw in meine Variable, weil in Calc soll ja das Komma als Dezimal-trenner erscheinen.
LG
Andreas
btw : soll in Version 2.4, als auch in 3.01 funktionieren
genau das mein ich.
Ich lese eine Zelle per Makro aus (VAR1 = oSheet.getcellrangebyname("A1").value) und füge diese Variable per SQL Befehl im selben Makro in meine HSQLDB ein (Insert Into ""Tabelle"" (""AusgelesenerWert"") Values = (" & VAR1 & ") )
Nur wie kriege ich diesen blöden punkt in Calc hin, bzw in meine Variable, weil in Calc soll ja das Komma als Dezimal-trenner erscheinen.
LG
Andreas
btw : soll in Version 2.4, als auch in 3.01 funktionieren
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: Double
...verstehe dass Problem nicht ...
mit der ersten BASIC-Anweisung holst Du einen DOUBLE-Wert aus dem Blatt ...
mit
Wo klappt was nicht?
mit der ersten BASIC-Anweisung holst Du einen DOUBLE-Wert aus dem Blatt ...
mit
schreibst Du in die Tabelle" Insert Into ""Tabelle"" Set ""AusgelesenerWert"" = (" & VAR1 & ")"
Wo klappt was nicht?
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Re: Double
Fehlermeldung beim Einfügen des Datensatzes
wenn VAR 1 eine Ganzzahl ist ist es kein Problem
ansonsten wenn VAR1 = 1,12
unexpected Token 12 in statement [update "Tabelle" set "AusgelesenerWert" = 1,12].
oder wenn ich es über INSERT mache um einen neuen Datensatz zu erstellen kommt ;
Column does not match in statement [insert into "Tabelle" ("AusgelesenerWert") Values (1,12].
da muss halt nur n Punkt in meine Variable, dann würde es laufen, nur wie sage ich meiner variable, daß sie nu ein englisches Zahlenformat haben soll ? und somit den Punkt als Dezimaltrenner benutzen muß ?
LG
Andreas
wenn VAR 1 eine Ganzzahl ist ist es kein Problem
ansonsten wenn VAR1 = 1,12
unexpected Token 12 in statement [update "Tabelle" set "AusgelesenerWert" = 1,12].
oder wenn ich es über INSERT mache um einen neuen Datensatz zu erstellen kommt ;
Column does not match in statement [insert into "Tabelle" ("AusgelesenerWert") Values (1,12].
da muss halt nur n Punkt in meine Variable, dann würde es laufen, nur wie sage ich meiner variable, daß sie nu ein englisches Zahlenformat haben soll ? und somit den Punkt als Dezimaltrenner benutzen muß ?
LG
Andreas
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: Double
Bei mir IST die Variable VAR1 ein double mit dem Inhalt 3,21 (xray-Darstellung: 3.21).
Du hast VAR1 als string deklariert? Sonst würde es klappen ...
Du hast VAR1 als string deklariert? Sonst würde es klappen ...
Eine Variable ist entweder eine Zeichenkette - oder ein LONG Wert. Ein Format hat sie nicht.keksi1970 hat geschrieben:wie sage ich meiner variable, daß sie nu ein englisches Zahlenformat haben soll
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Re: Double
VAR1 ist als Double deklariert.
xray zeigt auch bei mir 1.12, aber eingefügt wird immer 1,12 ?
als text würde es zwar gehn, ist aber wegen anstehender berechnungen nichtwirklich eine Lösung.
xray zeigt auch bei mir 1.12, aber eingefügt wird immer 1,12 ?
als text würde es zwar gehn, ist aber wegen anstehender berechnungen nichtwirklich eine Lösung.
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: Double
Deine Fehlermeldung besagt, dass die Spaltenanzahl ungleich der Anzahl der Tabellenspalten ist (Spalte ID vergessen, he?)
Hat nichts mit einem Komma zu tun ...
Hat nichts mit einem Komma zu tun ...
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Re: Double
Spalte ID ist autowert, wird automatisch eingefügt, die Fehlermeldung besagt einfach nur, daß (durch das Komma) eine weitere nicht existente Spalte angesprochen wird, weil das Komma das Trennzeichen für die einzelnen Werte in den einzelnen SPalten ist.
Wenn ich den Wert der testtabelle auf 1,00 ändere funktioniert es ja ohne Probleme (es wird der Wert 1 eingefügt in die SPalte AusgeleseerWert )
Es wird also bedingt durch dieses blöde System mit den Dezimaltennzeichen eine weitere Spalte erwartet.
folglich muß(!) meine variable einen Punkt als trenner besitzen, was ich aber nicht hinkriege (weil sie ihn schon hat, es aber als komma interpretiert wird.)
LG
Andreas
Wenn ich den Wert der testtabelle auf 1,00 ändere funktioniert es ja ohne Probleme (es wird der Wert 1 eingefügt in die SPalte AusgeleseerWert )
Es wird also bedingt durch dieses blöde System mit den Dezimaltennzeichen eine weitere Spalte erwartet.
folglich muß(!) meine variable einen Punkt als trenner besitzen, was ich aber nicht hinkriege (weil sie ihn schon hat, es aber als komma interpretiert wird.)
LG
Andreas
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: Double
... ja, habe ich inzwischen auch gesehen (SQL erwartet die engl. Notation, ein deutsches Basic hat das Komma als Dezimaltrenner).
Hatte da auch schon mal eine Lösung (Wechseln des Kommas in Punkt) ... muss die aber erst raussuchen.
Hatte da auch schon mal eine Lösung (Wechseln des Kommas in Punkt) ... muss die aber erst raussuchen.
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Re: Double
das wäre perfekt 
ich weiß nämlich nicht mehr, wo ich suchen soll
auch so schon einmal lieben Dank für die Mühe
LG
Andreas

ich weiß nämlich nicht mehr, wo ich suchen soll

auch so schon einmal lieben Dank für die Mühe

LG
Andreas
Re: Double
leider nein, immer noch der gleiche Fehler.
gibt es denn wirklich keine Möglichkeit, einen dezimalwert wie 1,12 auszulesen und in dBase einzubinden (per Makro und als Zahl, da weitere Berechnungen anstehen)
Die Werte mit 100 zu Multiplizieren und beim Anzeigen durch 100 zu Teilen ist wirklich nicht DIE Lösung
LG
Andreas
gibt es denn wirklich keine Möglichkeit, einen dezimalwert wie 1,12 auszulesen und in dBase einzubinden (per Makro und als Zahl, da weitere Berechnungen anstehen)
Die Werte mit 100 zu Multiplizieren und beim Anzeigen durch 100 zu Teilen ist wirklich nicht DIE Lösung
LG
Andreas
-
- ***
- Beiträge: 62
- Registriert: Di, 20.03.2007 11:41
Re: Double
Hi Andreas,
habe eben erst diesen Thread gelesen.
Ist das Problem nicht ganz einfach zu lösen, indem Du Deine Spalte in der Calc-Datei folgendermaßen formatierst:
Format > Zellen...
Register: Zahlen
Sprache: Englisch (Großbritannien)
Oder habe ich da was falsch verstanden?
Viele Grüße
Christiana
habe eben erst diesen Thread gelesen.
Ist das Problem nicht ganz einfach zu lösen, indem Du Deine Spalte in der Calc-Datei folgendermaßen formatierst:
Format > Zellen...
Register: Zahlen
Sprache: Englisch (Großbritannien)
Oder habe ich da was falsch verstanden?
Viele Grüße
Christiana
Re: Double
Damit aenderst du nur die Anzeige der Calc-Zellen, intern wird aber mit einem Punkt gerechnet, der aber bei jedem Auslesen der Variablen als Komma dargestellt wird.
A1 = 1,12 /VAR1 = 1.12, Ausgelesen = 1,12
A1 = 1.12 /VAR1 = 1.12, Ausgelesen = 1,12
Es ist also egal, wie die Zellen Formatiert sind, daß einzige was helfen würde, wäre das Betriebssystem auf englisch umzustellen, auf dieses möchte ich aber aus gewissen Gründen verzichten.
LG
Andreas
EDITH sagt : ich könnte beim einfügen des Wertes natürlich vorher mit 100 multiplizieren und anschliessen mit ((0.00+" & VAR1 & ")/100), (0.00+ muß sein, weil 112/100 in Base als 1 dargestellt wird). ist aber nicht wirklich komfortabel :/
A1 = 1,12 /VAR1 = 1.12, Ausgelesen = 1,12
A1 = 1.12 /VAR1 = 1.12, Ausgelesen = 1,12
Es ist also egal, wie die Zellen Formatiert sind, daß einzige was helfen würde, wäre das Betriebssystem auf englisch umzustellen, auf dieses möchte ich aber aus gewissen Gründen verzichten.
LG
Andreas
EDITH sagt : ich könnte beim einfügen des Wertes natürlich vorher mit 100 multiplizieren und anschliessen mit ((0.00+" & VAR1 & ")/100), (0.00+ muß sein, weil 112/100 in Base als 1 dargestellt wird). ist aber nicht wirklich komfortabel :/