🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

PostgreSQL-Typ "numeric" falsch behandelt

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
MoonKid
Beiträge: 172
Registriert: Fr 14. Okt 2011, 21:26

PostgreSQL-Typ "numeric" falsch behandelt

Beitrag von MoonKid » Di 23. Dez 2014, 21:14

Ich habe ein Feld ("Gewicht") in einer PostgreSQL-Tabelle mit dem Typ "numeric". Das impliziert auch Nachkommestellen.
Kein Problem wenn ich direkt in PostgreSQL Kommawerte eingebe. Diese werden auch in Base ordentlich angezeigt.
Base selbst schneidet bei der Dateneingabe in dieses Feld die Nachkommastelle aber jedes mal ab.

Why?

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: PostgreSQL-Typ "numeric" falsch behandelt

Beitrag von RobertG » Di 23. Dez 2014, 22:02

Hallo MoonKid,

mit welcher Verbindung zu PostgreSQL arbeitest Du? Erst wenn es die direkte verbindung ist kann so etwas auch nachvollzogen werden.
Wo siehst Du in Base die Nachkommastellen? Siehst Du die Nachkommastellen mit einem Komma oder einem Punkt getrennt?
Wo gibst Du ein?
Welche LO-Version nutzt Du? Welches Betriebssystem?

Alles Fragen, ohne die es schwierig wird, so ein Verhalten nachzustellen. Ich habe das jedenfalls gerade mit LO 4.2.8.2, OpenSUSE 12.3 64bit rpm Linux und Postgresql in der Direktverbindung nicht nachstellen können. Ich habe ein numerische Feld mit 2 Nachkommastellen in einer Tasttabelle erstellt, dieses Feld als Währungsfeld formatiert und anschließend einen Betrag mit Nachkommastellen darin eingegeben und abgespeichert. Kein Problem.

Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

MoonKid
Beiträge: 172
Registriert: Fr 14. Okt 2011, 21:26

Re: PostgreSQL-Typ "numeric" falsch behandelt

Beitrag von MoonKid » Di 23. Dez 2014, 23:40

(die Software ist insgesamt so aktuelle, wie sie mit den repositories aus Ubuntu 14.04 sein kann. ;)

LibreOffice 4.2.7.2
darin der regulärere PostgreSQL-Treiber (was soll es sonst geben?)
PostgreSQL 9.3.5

So beschreibt pgAdmin die Tabelle per SQL.

Code: Alles auswählen

CREATE TABLE "PersonalParameter"
(
  oid oid NOT NULL DEFAULT nextval('"PersonalParameter_oid_seq"'::regclass),
  date date NOT NULL,
  weight numeric, -- Gewicht
  CONSTRAINT "PK_PersonalParameter" PRIMARY KEY (oid)
)
WITH (
  OIDS=FALSE
);
Testweise gebe ich die Daten in "pgAdmin III" ein. Dort werden Nachkommastellen mit '.' eingegeben und dargestellt.
Überprüfen tue ich das mit dem "Table Data View" (also kein Formular oder sowas) in LibreOffice Base. Dort sehe ich die Kommastellen mit ','.
Sobald ich diese Felder editiere (egal ob mit '.' oder ',') verschwinden die Nachkommastellen - ohne Fehlermeldung.
Als Datentyp gibt LO im Entwurfsmodus der Tabelle für dieses Feld "Zahl [numeric]" an.

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: PostgreSQL-Typ "numeric" falsch behandelt

Beitrag von RobertG » Mi 24. Dez 2014, 09:53

Hallo MoonKid,

Du kannst zu PostgreSQL natürlich neben dem nativen Treiber auch per ODBC oder JDBC den Kontakt aufnehmen.

Zu Deinem Beispiel: Der native Treiber kommt nicht damit zurecht, dass NUMERIC ohne jeden Hinweis of die Anzahl der Stellen und der Nachkommastellen versehen ist. Lt. Dokumentation bei PostgreSQL ist das möglich. Sinnvoller für den Allroundgebrauch wäre aber eine Angabe wie z.B. NUMERIC(10,2), damit auch zwei Nachkommastellen heraus kommen.

Ich habe das mit Deinem Code getestet und konnte ohne die Angabe der Stellenanzahl und der Nachkommastellen auch nur ganze Zahlen eingeben. Mit der entsprechenden Ändeung waren dann aber auch die Nachkommastellen dauerhaft da.

Erstellst Du die Tabellen über Base, so wirst Du auf diese Besonderheit nicht stoßen. Die GUI von Base gibt die entsprechende Werte für die Genauigkeit und die Nachkommastellen direkt mit.

Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

MoonKid
Beiträge: 172
Registriert: Fr 14. Okt 2011, 21:26

Re: PostgreSQL-Typ "numeric" falsch behandelt

Beitrag von MoonKid » Mi 24. Dez 2014, 22:05

Ich erzeuge mit pgAdmin die Tabellen. Scheinbar ging diese Einstellungsmöglichkeit im "New Table" Dialog verloren. Ich check das bei nächster Gelegenheit.

zu den Treibern: Ich gehe davon aus, dass der native Treiber die meistne Möglichkeiten bietet. Oder gibt es Gründe die für O/JDBC sprechen würden?

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: PostgreSQL-Typ "numeric" falsch behandelt

Beitrag von RobertG » Mi 24. Dez 2014, 22:48

Hallo MoonKid,

ich habe mit PostgreSQL nicht weiter gearbeitet. In der Regel würde ich aber davon ausgehen, dass ein für Base direkt erstellter Treiber besser funktionieren sollte als der Kontakt über JDBC bzw. ODBC.

Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

MoonKid
Beiträge: 172
Registriert: Fr 14. Okt 2011, 21:26

Re: PostgreSQL-Typ "numeric" falsch behandelt

Beitrag von MoonKid » Fr 26. Dez 2014, 22:34

RobertG hat geschrieben:Sinnvoller für den Allroundgebrauch wäre aber eine Angabe wie z.B. NUMERIC(10,2), damit auch zwei Nachkommastellen heraus kommen.
Ah, bei pgAdmin nennt sich das "Länge" und "Genauigkeit" im Dialog zum erzeugen neuer Spalten. Etwas schlecht verständlich.
Prima, so gehts! Danke für den Hinweis.


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten