BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!

❤️ DANKE >><< DANKE ❤️

> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

1:n Abfrage - Fehler: Invalid argument in JDBC call: parameter index out of range: 2

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
Jufö
Beiträge: 4
Registriert: Sa 29. Mai 2021, 21:52

1:n Abfrage - Fehler: Invalid argument in JDBC call: parameter index out of range: 2

Beitrag von Jufö » Sa 29. Mai 2021, 22:05

Hallo,

ich stecke bei folgendem Problem fest.

Ich habe eine Tabelle (Personendaten) mit mehreren Tabellen (Maßnahmen) über LEFT OUTER JOIN verbunden. Das klappt erst einmal - beim Ausführen der Abfrage kommen die Daten wie gewünscht. Nun möchte ich in der Abfrage Daten eingeben und ändern können. Solange ich dies in der Tabelle mit den Personendaten mache, klappt es auch. Sobald ich dies in den verbundenen Tabellen probiere kommt folgende Fehlermeldung:

Invalid argument in JDBC call: parameter index out of range: 2

Der SQL Code der Abfrage:

Code: Alles auswählen

SELECT "NAM_Zuweisungen"."ID_Zuw" AS "ID_Zuw", "NAM_Zuweisungen"."Nachname" AS "Nachname", "NAM_Zuweisungen"."Vorname" AS "Vorname", "NAM_Zuweisungen"."Aktenzeichen" AS "Aktenzeichen", 
"NAM_AW"."ID_AW" AS "ID_AW", "NAM_AW"."ID_Zuw" AS "ID_Zuw", "NAM_AW"."Marker_AW" AS "Marker_AW", 
"NAM_AW"."beendet am" AS "beendet am", "NAM_KGA"."ID_KGA" AS "ID_KGA", "NAM_KGA"."ID_Zuw" AS "ID_Zuw", 
"NAM_KGA"."Marker_KGA" AS "Marker_KGA", "NAM_KGA"."beendet am" AS "beendet am", "NAM_AW"."ID_Zuw" 
FROM { oj "NAM_Zuweisungen" 
LEFT OUTER JOIN "NAM_KGA" ON "NAM_Zuweisungen"."ID_Zuw" = "NAM_KGA"."ID_Zuw" 
LEFT OUTER JOIN "NAM_AW" ON "NAM_Zuweisungen"."ID_Zuw" = "NAM_AW"."ID_Zuw" } ORDER BY "ID_Zuw" ASC
Der Code ist halt über die Entwurfsansicht erstellt worden.

Falls die Datenbank als solches noch benötigt wird, kann ich die gern noch anhängen - einfach Bescheid sagen...

Danke
Jan

F3K Total
Beiträge: 2410
Registriert: So 10. Apr 2011, 10:10

Re: 1:n Abfrage - Fehler: Invalid argument in JDBC call: parameter index out of range: 2

Beitrag von F3K Total » So 30. Mai 2021, 09:42

Moin,
klar, hänge die DB hier an, ggf. verfremdet, dann wird dir sicherlich geholfen werden können.

Gruß R
Zuletzt geändert von F3K Total am Mi 2. Jun 2021, 16:27, insgesamt 1-mal geändert.
Windows 10: AOO, LO Linux Mint: AOO, LO

Jufö
Beiträge: 4
Registriert: Sa 29. Mai 2021, 21:52

Re: 1:n Abfrage - Fehler: Invalid argument in JDBC call: parameter index out of range: 2

Beitrag von Jufö » So 30. Mai 2021, 10:16

Hallo,

im Anhang ist die Datenbank - sind eh nur Fakedaten enthalten :D . Sie ist in einem ganz frühen Stadium, da ich eben gerade noch an der Grundstruktur bastle. Ich habe da bisher 2 Ansätze verfolgt. Die Verbindung der verschiedenen Tabellen im Formular (siehe Formular: fNAM_Zuweisung_verwalten_Var1) - hatte aber aus meiner Sicht enorme Nachteile. Und dann eben Verbindung per Abfrage mit oben beschriebenen Problem (siehe vor allem Abfrage: qNAM_Zuweisungen_verwalten), was laut meiner Recherche ja der bessere Weg sein sollte...

Danke schon mal für's reinschauen!

Jan
Dateianhänge
DB Jufoe neu - Kopie.zip
(61.52 KiB) 94-mal heruntergeladen

RobertG
Beiträge: 2732
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: 1:n Abfrage - Fehler: Invalid argument in JDBC call: parameter index out of range: 2

Beitrag von RobertG » So 30. Mai 2021, 16:41

Das Erste, was mir auffällt, ist, dass ich nach einer Neueingabe von Vorname und Nachfrage in die Abfrage "qNAM_Zuweisungen_verwalten" einen sicheren Absturz von LO produziere. Dann fällt mir auf, dass sich das Feld "ID_Zuw" beständig wiederholt. Hat aber nichts gebracht, da nachzubessern, weil der Absturz weiter stattfand.

Abfragen über mehrere Tabellen sind immer mit Vorsicht als Datengrundlage für ein Formular nutzbar. Das was Du da mit laufendem Left JOIN erzeugen willst gibt zwar vor editierbar zu sein (alle Primärschlüssel enthalten), kann aber sehr schnell zu Problemen führen.

Leider stürzt bei mir Deine Datenbank selbst bei kleinsten Abfragen (2 Tabellen mit direkter Verbindung ohne Left Join) auch schon reproduzierbar ab. Da müsste ich erst einmal Zeit investieren um dem auf den Grund zu gehen, warum das so ist.

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

Jufö
Beiträge: 4
Registriert: Sa 29. Mai 2021, 21:52

Re: 1:n Abfrage - Fehler: Invalid argument in JDBC call: parameter index out of range: 2

Beitrag von Jufö » So 30. Mai 2021, 23:20

Vielen Dank schon mal für Deine Mühe Robert,

ja, die Abstürtze hab ich leider auch...

Wenn Du sagst, die Verbindung über LEFT JOIN ist mit Vorsicht zu genießen, dann doch lieber die Tabellen direkt im Formular verbinden?

Als Alternative schwebte mir noch vor, die 8 Tabellen mit den Maßnahmen in eine zu packen. Und diese dann mit jener der Personen über einen "normalen" inneren Verbund zu verknüpfen. Ich weiß nur noch nicht, ob die Datenbank dann am Ende das hergibt, wofür ich sie haben wollte...

Kannst Du aus Erfahrung zu einem bestimmten Weg raten? Stabilität wäre schon von Vorteil ;) .

Viele Grüße
Jan

RobertG
Beiträge: 2732
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: 1:n Abfrage - Fehler: Invalid argument in JDBC call: parameter index out of range: 2

Beitrag von RobertG » Di 1. Jun 2021, 17:48

Hallo Jan,

ich habe versucht, irgendwie hinter die dauernden Komplettcrashes Deiner Datenbankkonstruktion zu kommen. Ich dachte, dass es vielleicht an irgendwelchen Defaulteingaben oder ähnlichem liegen könnte. Ich kann das in einfachen tests nicht nachstellen.

Was mir auffällt ist, dass Du bisher keine allgemeine Verbindung unter Extras → Beziehungen gemacht hast. Da würde ich mich zuerst einmal dran begeben.

Dann würde ich mir genau überlegen: Brauche ich eine 1:n-Beziehung oder eine n:m-Beziehung zwischen bestimmten Tabellen. Gibt es z.B. in "TOA" beliebig viele Datensätze, die ich auf "Zuweisungen" beziehen? Worin unterschieden sich die Datensätze? Du hast Tabellen, die von den Feldbezeichnungen und Inhalten sehr ähnlich sind - worin unterscheiden die sich?

Natürlich sollte eine Datenbankdatei in LO nicht LO insgesamt zum Absturz bringen. Was immer das im Moment bei der DB macht. Aber grundsätzlich solltest Du zuerst einmal Formulare ohne Abfragen zusammenstellen. Auf Abfragen greifst Du dann zurück, wenn Du Daten filtern willst oder Berechnungen mit anzeigen willst. Nur in Ausnahmefällen aber zum Eingeben über mehrere Tabellen. Da würde ich grundsätzlich von abraten. Ich würde immer eine Tabelle beschreiben und andere Daten von anderen Tabellen schreibgeschützt erscheinen lassen, wenn sie unbedingt im gleichen Tabellenkontrollfeld auftauchen sollen.

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

Jufö
Beiträge: 4
Registriert: Sa 29. Mai 2021, 21:52

Re: 1:n Abfrage - Fehler: Invalid argument in JDBC call: parameter index out of range: 2

Beitrag von Jufö » Di 1. Jun 2021, 21:18

Hallo Robert,

erstmal wieder vielen Dank für Deine Mühe und Zeit.

Grundsätzlich verstehe ich die Bedenken von Eingaben in Abfragen. Das was ja auch beim LEFT JOIN passiert ist ja, dass nicht vorhandene Daten wohl einfach mit Null gefüllt werden. Vielleicht liegt dort auch der Fehlerteufel für die Abstürze.

Wie Du an der Tabelle wahrscheinlich gesehen hast, geht es um (gerichtliche) Maßnahmen - und davon kann es pro Aktenzeichen mehrere geben. Und eine Person kann natürlich mehrere Aktenzeichen haben. Dies wollte ich zur besseren späteren Auswertung in mehrere Tabellen packen. Ist dann das Vorgehen, Tabellen über ein Formular zu verbinden, sinnvoller? Dies habe ich ja bereits im Formular: fNAM_Zuweisung_verwalten_Var1 versucht. Leider hatte ich dann beim Speichern und Anlegen neuer Datensätze probleme, da ja im Grunde verschiedene Datenquellen gleichzeitig gespeichert bzw. angelegt werden müssen. Mit dem aktualisieren des ganzen Formulars konnte ich das erste Problem glaub ich leidlich lösen, das zweite noch nicht... Vielleicht versuche ich die Maßnahmen dann doch in eine große Tabelle zu packen und richte eine mehrstufige Dateneingabe ein... Ich werde weiter probieren - vielleicht hast Du dahingehend noch einen Tipp...

Viele Grüße

Jan

RobertG
Beiträge: 2732
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: 1:n Abfrage - Fehler: Invalid argument in JDBC call: parameter index out of range: 2

Beitrag von RobertG » Mi 2. Jun 2021, 16:11

Hallo Jan,

dass in den Abfragen anschließend statt des AutoWertes einfach eine "0" erscheint ist auch merkwürdig, funktioniert aber in anderen testen dennoch. Da wird nicht tatsächlich mit einem Fremdschlüssel "0" verbunden. Das liegt wohl daran, dass eben der leere Wert für eine Integer-Variable 0 ist.

Das Formular, das Du angelegt hast, passt doch vom Prinzip her. Nur täuschen die Formularfelder eine andere Struktur vor als dahinter steckt. Die Unterformular sollen doch gerade mehrere Werte für die eine Person enthalten. Da müsste jedes dieser Formulare nicht mit Einzelfeldern sondern mit einem Tabellenkontrollfeld erstellt werden. Sonst siehst Du in dem Formular immer nur einen Wert - nämlich den, der als erstes in die jeweilige Tabelle zu der Person eingegeben wurde.

Das einzige Formular, was dieses Feld erst einmal nicht zwingend erforderlich macht, ist das Hauptformular. Und da hast Du dann das Tabellenkontrollfeld genutzt.

Ergänzung: Ich habe einmal die Verknüpfung der Tabellen erstellt, um zu sehen, was da eigentlich alles miteinander wo zusammen hängt. Du hast z.B. 4 identische Tabellen, die sich nur in einem Marker unterscheiden. Da wäre z.B. eine Tabelle sinnvoll, die die Inhalte beherbergt, und eine Tabelle, die irgendwie diese Abkürzungen auffängt (BG, TOA usw.). Diese Tabelle wird über ein Fremdschlüsselfeld mit den Inhalten verbunden. Dann tauchen 2 Tabellen mit vielen Feldern auf, die ebenfalls identisch sind - bis auf den Marker.

Erstelle zuerst einmal eine logische Struktur und verknüpfe die Tabellen entsprechend. Dann wird das Ganze vermutlich auch übersichtlicher.

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 nutzen:


Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.

❤️ Vielen lieben Dank für Ihre Unterstützung ❤️

Antworten