HSQLDB - SQL-Fehlermeldung

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

wega
****
Beiträge: 148
Registriert: So, 03.06.2007 21:37

HSQLDB - SQL-Fehlermeldung

Beitrag von wega »

Hallo zusammen,

ich habe mit einer "CREATE VIEW..." SQL-Anweisung einen Syntaxfehler erzeugt, (Bild liegt im Zipordener), der mich die Datenbank nicht mehr starten läßt.
SQL-Fehlermeldung.zip
SQL-Fehlermeldung
(15.96 KiB) 42-mal heruntergeladen
Weiß irgendeine/r wo sich der Skriptcode innerhalb der Datenbank versteckt?
Den Code zum "CREATE ViEW" habe ich schon aus dem Makro entfernt, dennoch bleibt die Fehlermeldung beim Starten bzw. beim Anwenden der Datenbank bestehen.

mit freundlichem Gruß
Werner
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Re: HSQLDB - SQL-Fehlermeldung

Beitrag von Toxitom »

Hallo Werner,

"Wie" hast du den Code "entfernt" und wo hast du ihn ursprünglich eingesetzt?

Mit "Create View" wird eine Ansicht erzeugt - könnte sein, dasss OOo diese direkt im Content.xml File abgelegt hat - unter Abfragen. Dann wird diese jedesmal neu gestartet - mit bekannter Fehlermeldung.
Wenn dem so ist, versuche folgendes:
Datei kopieren, mit Sicherungskopie arbeiten.
Datei umbenennen in *.zip
Mit Zip-Programm öffnen.
Jetzt suchst du dir die "content.xml" und öffnest diue mit einem beliebigen reinen Texteditor. Dort sind im Abschnitt <db:queries> alle Abfragen in SQL-Syntax gespeichert. Schau mal, ob du sie dort findest. Wenn ja, einfach den kompleten Tag dieser Abfrage löschen.
Dann alles speichern, die Zipdatei wieder einpacken, umbenennen und hoffen ... :-)

Viele Grüße
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
wega
****
Beiträge: 148
Registriert: So, 03.06.2007 21:37

Re: HSQLDB - SQL-Fehlermeldung

Beitrag von wega »

Hallo thomas,

Danke für den wertvollen Hinweis.
Der Weg üb die ZIP-Datei bzw. Umbenennung auf ZIP war genau der richtige Weg.

Den Skriptanteil, der immer wieder von Openoffice beim Start aufgerufen wurde habe ich im Ordner "DATABASE" gefunden.

Hier die Skriptdatei, geöffnet mit dem ganz normalen Editor:

SET DATABASE COLLATION "German"
CREATE SCHEMA PUBLIC AUTHORIZATION DBA
CREATE CACHED TABLE "Kunden"("KD-ID" INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 0) NOT NULL PRIMARY KEY,"KD-name" VARCHAR(50),"KD-vorname" VARCHAR(50),"KD-firma" VARCHAR(50),"KD-strasse" VARCHAR(50),"KD-land" VARCHAR(5),"KD-plz" VARCHAR(10),"KD-ort" VARCHAR(50),"KD-telefon" VARCHAR(50),"KD-handy" VARCHAR(50),"KD-fax" VARCHAR(50),"KD-email" VARCHAR(50),"KD-homepage" VARCHAR(50),"KD-erstkontakt" DATE,"KD-nummer" VARCHAR(10))
CREATE CACHED TABLE "Rechnung"("RE-ID" INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 0) NOT NULL PRIMARY KEY,"RE-datum" DATE,"RE-summe" DECIMAL(50),"RE-bezahlt" BOOLEAN,"KD-nummer" VARCHAR(10),"RE-nummer" VARCHAR(10))
CREATE CACHED TABLE "Lieferanten"("LIEF-ID" INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 0) NOT NULL PRIMARY KEY,"LIEF-nr" VARCHAR(50),"LIEF-name" VARCHAR(50),"LIEF-vorname" VARCHAR(50),"LIEF-strasse" VARCHAR(50),"LIEF-land" VARCHAR(5),"LIEF-plz" VARCHAR(10),"LIEF-ort" VARCHAR(50),"LIEF-telefon" VARCHAR(50),"LIEF-handy" VARCHAR(50),"LIEF-fax" VARCHAR(50),"LIEF-email" VARCHAR(50),"LIEF-homepage" VARCHAR(50),"LIEF-erstkontakt" DATE)
CREATE CACHED TABLE "Artikel"("ART-ID" INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 0) NOT NULL PRIMARY KEY,"ART-nr" VARCHAR(10),"ART-bez" VARCHAR(50),"LIEF-nr" VARCHAR(10),"ART-preis" VARCHAR(10),"ART-bild" VARCHAR(50))
CREATE CACHED TABLE "Repos"("POS-ID" INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 0) NOT NULL PRIMARY KEY,"RE-nummer" VARCHAR(50),"POS-nr" VARCHAR(50),"ART-nr" VARCHAR(50),"ART-bez" VARCHAR(50),"ART-preis" VARCHAR(10),"POS-anzahl" VARCHAR(10),"POS-sum" VARCHAR(10))
SET TABLE "Kunden" INDEX'13128 15'
SET TABLE "Rechnung" INDEX'18352 2'
SET TABLE "Lieferanten" INDEX'18216 2'
SET TABLE "Artikel" INDEX'14248 2'
SET TABLE "Repos" INDEX'18488 3'
CREATE VIEW "REKU" (KD-nummer,KD-vorname,KD-name,KD-firma,KD-ort) AS Select "KD-nummer","KD-vorname","KD-name","KD-firma","KD-ort" from "Kunden" where "KD-ID" = '1'
CREATE USER SA PASSWORD ""
GRANT DBA TO SA
SET WRITE_DELAY 60

Dieser Create View-Befehl/anweisung hat die Fehlerausgabe bewirkt.
Nachdem ich diese Zeile gelöscht habe, die ganzen Dateien inklusive ordner wieder neu in eine Zipdadatei geschrieben, diese anschließend wieder umbenannt in "Minifaktura.odb" habe, lief das Programm wieder ganz sauber an.

Uff, alle Arbeit gerettet. Danke nochmals für den Hinweis.

Weshalb aber der View-Befehl/Anweisung daneben gegangen ist, ist mir aber weiterhin ein Rätsel.

Ich löse das Problem der Datenübergabe von einem formular auf das andere jetzt mit einer Zwischen(Transport)Tabelle, in die ich die Kundendaten reinschreiben werde, die ich im anderen Formular benötige.

Oder gibt es da eine elegantere Lösung, den Tabellendatensatz von einem formular auf das andere Formular zu übtragen?

Ich denke daran, daß man in der Kundendatei den Kunden anwählt, dann ins Rechungsformular wechselt und zu dem ausgewählten Kunden die rechnung erstellt.

Viele worte für ein kleines Problem.
Dennoch geht es mit meinem Miniprojekt zügig voran und ich bin erstaunt, wie gut man eigentlich die Acessdarstelung nach Openoffice übertragen kann.
Nun ja, mitunter muß man zur Problemlösung einen anderen Weg einschlagen. Aber wie heißt es doch so sinnreich:
"Viele Wege führen nach Hamburg" oder war es "Rom"? na ja, aber irgendwie klappt das schon mit ein bischen Phantasie.

Viele Grüße Werner
Antworten