🙏 Helfen Sie mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

BASE - Abfragen editierbar

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
LO_Micha
Beiträge: 11
Registriert: Mi 31. Aug 2016, 11:03

BASE - Abfragen editierbar

Beitrag von LO_Micha » Mi 31. Aug 2016, 11:37

Hallo,

ich habe immer wieder einmal Schwierigkeiten, Abfragen die auf mehreren Tabellen basieren, editierbar (Datenätze hinzufügen oder ändern) zu halten. Laut BASE-Handbuch / Eingabemöglichkeit in Abfragen sollen Abfragen editierbar sein, wenn kein Tabellen-Alias verwendet wird und die Primärschlüssel-Felder der beteiligten Tabellen enthalten sind.

Hierzu ein Beispiel
AbfrageEditierbar.zip
(4.94 KiB) 246-mal heruntergeladen
auf Grundlage der Beispiel-DB 'Medien ohne Makros' (gekürzt): Enthalten sind zwei Tabellen
  • * 'Medien' (n-Tabelle)
    * 'Medienart' (1-Tabelle).
Beide Tabellen haben ein Primärschlüsselfeld 'ID', die Tabelle 'Medienart' zusätzlich ein typ- und inhaltsgleiches Feld 'Dummy'.

Außerdem enthält das Beispiel zwei Abfragen
  • * Medien editierbar: Verknüpfung auf das Primärschlüsselfeld 'ID' der Tabelle 'Medienart',
    * Medien NICHTeditierbar: Verknüpfung auf das Feld 'Dummy' der Tabelle 'Medienart'.
Ist meine Ansicht richtig, dass für editierbare Abfragen der Bezug auf die 1-Tabelle auf das Primärschlüsselfeld erfolgen muss? Oder gibt es noch andere Bedingungen?

Danke.
Michael

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: BASE - Abfragen editierbar

Beitrag von RobertG » Mi 31. Aug 2016, 19:19

Hallo Michael,

ist wohl korrekt so: Abfragen sind nur dann editierbar, wenn die Primärschlüssel der entsprechenden Tabellen enthalten sind, aber eben auch die Fremdschlüsselverbindung korrekt gewählt wird.
Ich wäre nicht darauf gekommen, dass jemand eine Fremdschlüsselverbindung in einer Abfrage bewusst abwählt - dann passt doch die Relation bei einer eventuellen Eingabe nicht mehr. Sobald Du trotz der Verbindung zum Dummyfeld noch die Verbindung Fremdschlüssel - Primärschlüssel setzt, dann funktioniert die Eingabe auch wieder.
Ob ein weiteres Feld, wie z.B. das Feld "Dummy", genau den gleichen Inhalt und den gleichen Feldtyp hat, spielt dabei keine Rolle. Das bekommt ja die Datenbank von der Definition her nicht mit. Es macht ja auch keinen Sinn, innerhalb einer Tabelle zwei Felder mit durchgängig gleichen Inhalten zu führen

Ich werde da wohl einen Satz in der Beschreibung ergänzen müssen, der explizit auf die Verbindung hinweist.

Edit: Habe das jetzt für die zukünftige Version des Handbuch Base 5.3 aufgenommen. Steht auf S. 259, zur Zeit natürlich in dem Ordner für die Weiterentwicklung des Base-Handbuchs. Siehe meine untenstehende Signatur.

Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

LO_Micha
Beiträge: 11
Registriert: Mi 31. Aug 2016, 11:03

Re: BASE - Abfragen editierbar

Beitrag von LO_Micha » Do 1. Sep 2016, 19:17

Hallo Robert,

vielen Dank für Überprüfung und Bestätigung.
RobertG hat geschrieben:ist wohl korrekt so: Abfragen sind nur dann editierbar, wenn die Primärschlüssel der entsprechenden Tabellen enthalten sind, aber eben auch die Fremdschlüsselverbindung korrekt gewählt wird.
Ich wäre nicht darauf gekommen, dass jemand eine Fremdschlüsselverbindung in einer Abfrage bewusst abwählt - dann passt doch die Relation bei einer eventuellen Eingabe nicht mehr.
Ja klar, das Feld 'Dummy' in 'Medienart' ist gesperrt. Aber mySQL mag Primärschlüssel vorzugsweise als Autowert und ACCESS mag nicht so gern andere Spalten als den Primärschlüssel verwenden. Daher kam bei mir das Konstrukt, werde ich wohl ändern ...
RobertG hat geschrieben:Sobald Du trotz der Verbindung zum Dummyfeld noch die Verbindung Fremdschlüssel - Primärschlüssel setzt, dann funktioniert die Eingabe auch wieder.
Könntest Du mir das bitte zu Lernzwecken in das Beispiel einfügen? Ich habe es hier versucht: Die Links werden zu einem verbunden und die Abfrage bleibt nicht editierbar. Bug oder Bedienfehler?
Danke
Michael

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: BASE - Abfragen editierbar

Beitrag von RobertG » Do 1. Sep 2016, 21:01

Hallo Michael,

diese Abfrage (nach Abschalten des Designmodus) ist nicht editierbar:

Code: Alles auswählen

SELECT "Medien"."ID", "Medien"."Autor", "Medien"."Titel", "Medien"."E_Jahr", "MedienArt"."Medienart", "MedienArt"."ID", "MedienArt"."Dummy" FROM "MedienArt", "Medien" WHERE "MedienArt"."Dummy" = "Medien"."Medienart_ID"
Diese Abfrage dann schon:

Code: Alles auswählen

SELECT "Medien"."ID", "Medien"."Autor", "Medien"."Titel", "Medien"."E_Jahr", "MedienArt"."Medienart", "MedienArt"."ID", "MedienArt"."Dummy" FROM "MedienArt", "Medien" WHERE "MedienArt"."Dummy" = "Medien"."Medienart_ID" AND "MedienArt"."ID" = "Medien"."Medienart_ID"
Du hattest, wenn ich mich recht entsinne, da sogar noch irgendeine JOIN-Verbindung drin. Wenn Du die über die GUI wieder rein bringst, dann ist die Abfrage wieder nicht editierbar. Die folgende Abfrage funktioniert aber auch mit einem JOIN:

Code: Alles auswählen

SELECT "Medien"."ID", "Medien"."Autor", "Medien"."Titel", "Medien"."E_Jahr", "MedienArt"."Medienart", "MedienArt"."ID", "MedienArt"."Dummy" FROM  "Medien" LEFT JOIN "MedienArt" ON "MedienArt"."ID" = "Medien"."Medienart_ID" AND "MedienArt"."Dummy" = "Medien"."Medienart_ID"
Bei der JOIN-Verbindung, die mir die GUI raus schmeißt, muss ich dafür sorgen, dass die Verbindung zwischen Primärschlüssel und Fremdschlüssel direkt hinter dem ON steht. Steht stattdessen "MedienArt"."Dummy" = "Medien"."Medienart_ID" direkt hinter dem ON, so ist die Abfrage nicht editierbar.

Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten