Datenverlust mit Base

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

TZeRo
Beiträge: 4
Registriert: Mo, 11.04.2011 12:04

Datenverlust mit Base

Beitrag von TZeRo »

Moin Liebe Gemeinde,

ich bin langsam am verzweifeln. Ich habe ein ausgelagertes Formular erstellt, dieses füllt eine Datenbank (OpenOffice Datenbank HSQL). Das Formular besitzt eine Schaltfläche "Datensatz speichern" das ich mit folgenden Code hinterlegt habe:

Code: Alles auswählen

sub DatensatzSpeichern()
DIM oDoc, oForm As Object
DIM DatabaseContext, ODataSource, oCon As Object
	DatabaseContext = createUnoService("com.sun.star.sdb.DatabaseContext")
	DataSource		= DatabaseContext.getByName("db_versand")
	oCon 			= DataSource.GetConnection("","")
	odoc		                = thiscomponent
	oform	           	= odoc.drawpage.forms.getbyindex(0)
On Error Goto ErrorBehandlung
If oForm.isNew Then
  oForm.insertRow
  MsgBox "Daten wurden hinzugefügt"
ElseIf oForm.isModified Then
  oForm.updateRow
  MsgBox "Daten wurden aktualisiert"
  else 
  exit sub
End If
odoc.store
exit sub
 ErrorBehandlung:
 MsgBox "Keine DATEN eingegeben!"
end sub
Nun zum Problem was ich habe, wenn man den PC herunterfährt und wieder hochfährt sind die eingegebenden Daten nicht in der Datenbank gespeichert. Wie bekomme ich es hin, dass die Daten dauerhaft in der Datenbank gespeichert werden. Ich hoffe das ihr mir helfen könnt!

Euer
Tzero
gogo
*****
Beiträge: 207
Registriert: Mi, 10.11.2010 13:11

Re: Datenverlust mit Base

Beitrag von gogo »

g
LucidLynx/WinXP LibreOffice v3.3.2 ab 03/12 v3.3.2 & v3.4.5
TZeRo
Beiträge: 4
Registriert: Mo, 11.04.2011 12:04

Re: Datenverlust mit Base

Beitrag von TZeRo »

Vielen Dank auf den Verweis. Eine kleine Zeile die Wunder bewirkt! Soweit ich das verstanden habe speichert OpenOffice die Daten bei der intregierten Datenbank zwischern. Um die Daten aus dem Zwischenspeicher endgültig zu speichern, brauch OpenOffice ein Befehl. Wie ist es bei einer MySQL Datenbank?

Code: Alles auswählen

DataSource.flush
Hier mal mein Code mit .flush

Code: Alles auswählen

sub DatensatzSpeichern()
DIM oDoc, oForm As Object
DIM DatabaseContext, ODataSource, oCon As Object
   DatabaseContext   = createUnoService("com.sun.star.sdb.DatabaseContext")
   DataSource            = DatabaseContext.getByName("db_versand")
   oCon                      = DataSource.GetConnection("","")
   odoc                      = thiscomponent
   oform                    = odoc.drawpage.forms.getbyindex(0)
On Error Goto ErrorBehandlung
If oForm.isNew Then
  oForm.insertRow
  MsgBox "Daten wurden hinzugefügt"
  DataSource.flush
ElseIf oForm.isModified Then
  oForm.updateRow
  MsgBox "Daten wurden aktualisiert"
  DataSource.flush  
else 
  exit sub
End If
exit sub
 ErrorBehandlung:
 MsgBox "Keine DATEN eingegeben!"
end sub
Ich habe auch die Zeile mit oDoc.store aus dem Code genommen.
gogo
*****
Beiträge: 207
Registriert: Mi, 10.11.2010 13:11

Re: Datenverlust mit Base

Beitrag von gogo »

Musst Du bei Dir ausprobieren - nachdem's ja jedes Mal einen Datenverlust gibt sollte der Fehler leicht nachzustellen sein. Wenn alles nicht hilft: eine Backend-Datenbank probieren, da sollte das nicht vorkommen.
g
LucidLynx/WinXP LibreOffice v3.3.2 ab 03/12 v3.3.2 & v3.4.5
TZeRo
Beiträge: 4
Registriert: Mo, 11.04.2011 12:04

Re: Datenverlust mit Base

Beitrag von TZeRo »

:D :D :D Danke klappt soweit wunderbar! Werde die Datenbank umstricken auf MySql in naher Zukunft!

**CLOSED**
Antworten