Hallo zusammen,
habe ein kleines Problemchen. Habe Oo über ODBC oder JDBC an MYSQL angebunden. Wenn sich eine Abfrage nur auf eine Tabelle bezieht bekomme ich vollen Schreibzugriff auf die Daten. Sind es aber zwei oder mehr verknüpfte Tabellen kann ich die Daten nicht editieren. Habe als Frontend auch mal Access über ODBC getestet. Dort gibt es das Problem nicht. (Access will ich aber nicht). Handelt es sich bei dem Problem um einen Bug oder ein nichtimplementiertes Feature in Oo, oder habe ich bei der Datenbankanbindung irgendwas vergessen oder übersehen?
Ralf
Daten in Oo-Abfragen editieren über mehrere MySQL-Tabellen
Moderator: Moderatoren
Daten in Oo-Abfragen editieren über mehrere MySQL-Tabellen
Windows XP SP1, OO 1.1 RC3, MySQL 4.013
Hi,
liegt wohl daran dass MySQL standardmässig keine Fremdschlüssel unterstützt. Ohne Fremdschlüssel und Views kann OOo wohl keine verküpften Tabellen updaten. Zumindest nicht einfach so.
Es gibt die Möglichkeit Formular und Unterformulare zu erstellne, welche die Werte der Formularfelder quasi als Fremdschlüssel von der DB unabhängig verwenden. SChau mal in der Hilfefunktion unter den Formularen. Da sollte die Verknüpfung von Formularen beschrieben sein.
Ansonsten hilft natürlich die Macro-Programmierung, womit ich mir selbst behelfen würde. Vielleicht klappt das aber auch ohne Basic.
viel glueck
liegt wohl daran dass MySQL standardmässig keine Fremdschlüssel unterstützt. Ohne Fremdschlüssel und Views kann OOo wohl keine verküpften Tabellen updaten. Zumindest nicht einfach so.
Es gibt die Möglichkeit Formular und Unterformulare zu erstellne, welche die Werte der Formularfelder quasi als Fremdschlüssel von der DB unabhängig verwenden. SChau mal in der Hilfefunktion unter den Formularen. Da sollte die Verknüpfung von Formularen beschrieben sein.
Ansonsten hilft natürlich die Macro-Programmierung, womit ich mir selbst behelfen würde. Vielleicht klappt das aber auch ohne Basic.
viel glueck
Meine Installation: AMD Athlon XP 1600+, 512 MB RAM, SuSE Linux 8.2, OpenOffice 1.1
Kostenlose OOo-CD in der Schweiz: http://www.office-cd.ch/
Kostenlose OOo-CD in der Schweiz: http://www.office-cd.ch/
-
- ***
- Beiträge: 88
- Registriert: Mi, 30.07.2003 18:06
- Wohnort: Wiesloch
Ich bin kein DB-Crack aber relationale Datenbank bezieht sich eher auf den Begriff einer Relation, welcher in der DB-Sprache nicht die Verbindung zwischen Tabellen, sondern die Tabelle selbst bezeichnet.
Und ja, zumindest in Versionen unter 4.x unterstützt mySQL meines Wissens Foreign Keys zwar in den SQL-Queries, ignoriert solche Angaben bei der Anlegung der Tabellen aber schlicht. Der Sinn ist nur bei den Queries nicht auf die Schnauze zu fallen, um SQL-Kompatibilität zu gewährleisten.
In den Versionen ab 4.x unterstützen dann spezielle Tabellen Transaktionen und auch Foreign Keys(???). Sicher bin ich mir da nur bei den Transaktionen. Die von MySQL standardmässig verwendeten Tabellen sind aber weiterhin nicht Transaktions-tauglich, du musst dazu den Tabellentyp bei der Erstellung definieren.
Die Foreign Keys, also die Verknüpfungen zwischen den Tabellen, müssen daher applikatorisch sichergestellt bzw. definiert werden, was in OOo beschränkt auch möglich ist (verknüpfte Formulare). Dinge wie cascading delete über Fremdschlüssel sind also von der Applikation zu erledigen, da hilft MySQL nicht weiter.
Berichtigungen sind willkommen.
Ansonsten hilft eine Blick auf die wirklich hervorragende Doku:
http://www.mysql.com/doc/de/index.html
Normale Tabellen ohne FK
http://www.mysql.com/doc/de/example-Foreign_keys.html
InnoDB-Tabellen mit Fremdschlüssel
http://www.mysql.com/doc/de/SEC437.html
Und ja, zumindest in Versionen unter 4.x unterstützt mySQL meines Wissens Foreign Keys zwar in den SQL-Queries, ignoriert solche Angaben bei der Anlegung der Tabellen aber schlicht. Der Sinn ist nur bei den Queries nicht auf die Schnauze zu fallen, um SQL-Kompatibilität zu gewährleisten.
In den Versionen ab 4.x unterstützen dann spezielle Tabellen Transaktionen und auch Foreign Keys(???). Sicher bin ich mir da nur bei den Transaktionen. Die von MySQL standardmässig verwendeten Tabellen sind aber weiterhin nicht Transaktions-tauglich, du musst dazu den Tabellentyp bei der Erstellung definieren.
Die Foreign Keys, also die Verknüpfungen zwischen den Tabellen, müssen daher applikatorisch sichergestellt bzw. definiert werden, was in OOo beschränkt auch möglich ist (verknüpfte Formulare). Dinge wie cascading delete über Fremdschlüssel sind also von der Applikation zu erledigen, da hilft MySQL nicht weiter.
Berichtigungen sind willkommen.
Ansonsten hilft eine Blick auf die wirklich hervorragende Doku:
http://www.mysql.com/doc/de/index.html
Normale Tabellen ohne FK
http://www.mysql.com/doc/de/example-Foreign_keys.html
InnoDB-Tabellen mit Fremdschlüssel
http://www.mysql.com/doc/de/SEC437.html
Meine Installation: AMD Athlon XP 1600+, 512 MB RAM, SuSE Linux 8.2, OpenOffice 1.1
Kostenlose OOo-CD in der Schweiz: http://www.office-cd.ch/
Kostenlose OOo-CD in der Schweiz: http://www.office-cd.ch/
Es hat zwar ein paar Tage gedauert, aber grundsätzlich hab ich es jetzt verstanden. Hab die Variante Formular/Unterformular gewählt und über
SQL-Ausdrücke verknüpft. Hab jetzt eine sinnvolle Darstellung im Formular und kann die gewünschten Daten editieren.
Danke für die Tipps
Ralf
SQL-Ausdrücke verknüpft. Hab jetzt eine sinnvolle Darstellung im Formular und kann die gewünschten Daten editieren.
Danke für die Tipps
Ralf
Windows XP SP1, OO 1.1 RC3, MySQL 4.013