Probleme mit Timestamp aus MySQL DB

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

st0rm_r1der
Beiträge: 1
Registriert: Mo, 21.12.2009 09:07

Probleme mit Timestamp aus MySQL DB

Beitrag von st0rm_r1der »

Hallo zusammen,

ich habe da ein kleines Problemchen dem ich (mit meinen bisherigen Kenntnissen) nicht so recht bei komme...
hoffentlich habt ihr mir da einen lösungsansatz..

ich habe einen Dialog mit dem ich nach Datensätzen in einer MySQL DB suchen will. (verbunden über den Java Connector)
Sobald aber eines der Timestampfelder zum Ergebnis gehört, wird beim zweiten Timestampfeld dieser Fehler ausgelöst.
der auftretende fehler...
der auftretende fehler...
timestamp-fehler.jpg (35.67 KiB) 409 mal betrachtet
Ursprünglich habe ich erst alle Felder eines Datensatzes direckt in ein Array eingelesen, was dann folgendes ergebniss hatte:
die beobachteten variablen...
die beobachteten variablen...
timestamp-fehler-debug.jpg (113.05 KiB) 409 mal betrachtet
Mittlerweile erstelle ich erst ein Objekt in das ich den Timestamp mit getTimestamp() einlese, und anschliesend als String verkettet in das Array schreibe.
Ergebnis ist leider auch der oben genannte fehler.

Code: Alles auswählen

Sub LadeLogDaten
	s = ""
	aPosListLogAnsicht = oLogDlg.getControl("LB_LogAnsicht").getSelectedItemsPos()
	aItemListLogAnsicht = oLogDlg.getControl("LB_LogAnsicht").getSelectedItems()

	if uBound(aPosListLogAnsicht) = -1 then
		s = "*"
	else
		s = Join(aItemListLogAnsicht(),", ")
	end if
	
	sOrder = oLogDlg.getControl("CB_Sort").text
	If sOrder = "" then
		sOrder = "`LOG_id`"
	Else
		sOrder = "`" & oLogDlg.getControl("CB_Sort").text & "`"
	End If
	
	If oLogDlg.getControl("OB_Sort_auf").state then
	   sOrderDirection = "ASC"
	ElseIf oLogDlg.getControl("OB_Sort_ab").state then
	   sOrderDirection = "DESC"
	end if  			
	
	sLogfelder = oLogDlg.getControl("CB_Logfelder").text
	if  sLogfelder = "" then
		sLogfelder = ""
	else
		sLogfelder = " WHERE `" & oLogDlg.getControl("CB_Logfelder").text &"` = '" & oLogDlg.getControl("TF_SearchString").text & "' "
	end if
	
	sSQL = "SELECT " & s & " FROM `log`" & sLogfelder & "ORDER BY " & sOrder & " " & sOrderDirection & ";"

	oCon = getConnection
	oStat = oCon.createStatement()
	oStat.ResultSetType = com.sun.star.sdbc.ResultSetType.SCROLL_INSENSITIVE
	oErg = oStat.executeQuery(sSQL)
	
	if not isNull(oErg) then
		i = 0
		oCB = oLogDlg.getControl("LB_LogDaten")
		oCB.removeItems(0, oCB.getItemCount())
		do while oErg.next()
			oMeta = oErg.getMetaData()
			Redim preserve aListe(i)
			n = oErg.MetaData.ColumnCount
			k = 0
			for j = 1 to n	
				Redim preserve aListe2(k)
				Select Case oMeta.getColumnType(j)
					Case com.sun.star.sdbc.DataType.CHAR,com.sun.star.sdbc.DataType.VARCHAR,com.sun.star.sdbc.DataType.LONGVARCHAR
						aListe2(k) = oErg.getString(j)
					Case com.sun.star.sdbc.DataType.DOUBLE
						aListe2(k) = oErg.getDouble(j)
					Case com.sun.star.sdbc.DataType.BOOLEAN
						aListe2(k) = oErg.getBoolean(j)
					Case com.sun.star.sdbc.DataType.INTEGER,com.sun.star.sdbc.DataType.TINYINT,com.sun.star.sdbc.DataType.SMALLINT,com.sun.star.sdbc.DataType.BIGINT
						aListe2(k) =  oErg.getInt(j)
					Case com.sun.star.sdbc.DataType.FLOAT,com.sun.star.sdbc.DataType.REAL
						aListe2(k) = oErg.getFloat(j)
					Case com.sun.star.sdbc.DataType.DATE
						aListe2(k) = oErg.getDate(j)
					Case com.sun.star.sdbc.DataType.TIME
						aListe2(k) = oErg.getTime(j)
					Case com.sun.star.sdbc.DataType.TIMESTAMP
						oTimeStamp = oErg.getTimeStamp(j)
						aListe2(k) = oTimeStamp.Year & "-" & oTimeStamp.Month & "-" & oTimeStamp.Day & " " & oTimeStamp.Hours & ":" & oTimeStamp.Minutes & ":" & oTimeStamp.Seconds
					Case Else
						aListe2(k) = "Datentyp anlegen!"
				End Select
				k = k + 1					
			next
			aListe(i) = Join(aListe2,", ")
			i = i + 1
		loop	
		oCB.addItems(aListe,0)
	end if
	oCon.close	
End Sub
die Variablen sind alle global definiert...

vielen dank schon mal für eure hilfe...

Viele Grüße

St0rm
WinXP Prof / Win7Ultimate
OpenOffice 3.1.1