Problem mit Datentypen in "INSERT" Statement

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

gschuckar
****
Beiträge: 140
Registriert: Fr, 24.02.2006 14:27

Re: Problem mit Datentypen in "INSERT" Statement

Beitrag von gschuckar »

Moin Borki,
ohne Deinen Code getestet zu haben, vermute ich den Fehler hier:

Code: Alles auswählen

Dim date As Date
...
todayDate = date()
In todayDate steht kein Wert, weil:

https://wiki.openoffice.org/wiki/Docume ... Library%29

Ich muss mich schon schwer irren, oder?

Gruß
Gerd
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: Problem mit Datentypen in "INSERT" Statement

Beitrag von F3K Total »

Kleiner Tipp, die eingebettete HSQL Datenbank erwartet z.B. das Datum von heute so:

Code: Alles auswählen

'2015-09-14'
Gruß R
RobertG
********
Beiträge: 2034
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Problem mit Datentypen in "INSERT" Statement

Beitrag von RobertG »

Wie Gerd schon schreibt: Die Datumsangabe wird falsch sein. Du musst das Datum so angeben, dass es auch von der Datenbank verstanden werden kann. Dazu muss ein Datum in der Form 'YYYY-MM-DD' weitergegeben werden. Das ist bei den internen Datumsformen nicht der Fall.

Versuche vielleicht einmal

Code: Alles auswählen

todayDate = YEAR(date())&"-"&MONTH(date())&"-"&DAY(date())
Vermutlich musst Du noch auf die Stellen achten (zweistellige Monats- und Tagesangabe)

Code: Alles auswählen

todayDate = YEAR(date())&"-"&RIGHT("0"&MONTH(date()),2)&"-"&RIGHT("0"&DAY(date()),2)
Gruß

Robert
RobertG
********
Beiträge: 2034
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Problem mit Datentypen in "INSERT" Statement

Beitrag von RobertG »

Hallo Borki,

ist der F8-Floart-Typ auch entsprechend mit Nachkommastellen definiert?

bei der Ausgabe über eine msgbox musst Du beachten, dass die msgbox den Code gegebenenfalls länderspezifisch umwandelt. Da wird dann schnell aus dem für die Datenbank korrekten 10.2 in der Ausgabe ein 10,2. Die Eingabe beim Insert kann übrigens für zahlen ohne die Hochkommata erfolgen.

Gruß

Robert
RobertG
********
Beiträge: 2034
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Problem mit Datentypen in "INSERT" Statement

Beitrag von RobertG »

Hallo borki,
hier

Code: Alles auswählen

   Statement.executeUpdate("INSERT INTO ""SHEET_1"" (NAME, VERSION, DATUM, F8) VALUES ('"+derName+"','"+version+"','"+todayDate+"',"+F8+")")
solltest Du ruhig dir Hochkommata um "+F8+" weglassen. Bringt aber nichts, wenn Du in der Datenbank gar keine Nachkommastellen definiert hast.

Gelingt Dir denn eine Eingabe mit Nachkommastellen in die Tabelle direkt? Wenn Du schreibst, dass Du float auf "00,00" gestellt hast - dann scheint mir das nichts mit Nachkommastellen, sondern etwas mit der Formatierung zu tun zu haben.

Gruß

Robert
Axel Richter
****
Beiträge: 159
Registriert: So, 17.10.2010 16:54

Re: Problem mit Datentypen in "INSERT" Statement

Beitrag von Axel Richter »

Hallo,

das INSERT Statement ist insgesamt ein String. Wenn Du schreibst

Code: Alles auswählen

"Text " + F8
und F8 ist eine Double-Variable, dann muss diese beim Verketten in einen String konvertiert werden. Das passiert dann implizit durch CStr. CStr aber benutzt das Dezimaltrennzeichen, welches in der Spracheinstellung festgelegt ist. Bei Dir also wahrscheinlich ein Komma. Das Komma ist im INSERT Statement aber das Trennzeichen für Felder. Deshalb der Fehler.

Ein Dilemma? Ja, aber man kann ja gezielt konvertieren. dazu benutzt man dann Str statt CStr und Str behält den Punkt als Dezimaltrennzeichen.

Code: Alles auswählen

Statement.executeUpdate("INSERT INTO ""SHEET_1"" (NAME, VERSION, DATUM, F8) VALUES ('"+SaveName+"','"+version+"','"+currentDate()+"',"+Str(F8)+" )")
viele Grüße

Axel
Antworten