Bug im SQL-Generator

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

WSO
*****
Beiträge: 233
Registriert: Di, 22.04.2014 13:03

Re: Bug im SQL-Generator

Beitrag von WSO »

Hallo Robert und Acco,

der Aufhänger für das Ganze war ja mal das merkwürdige "WHERE".

Code: Alles auswählen

File input/output error: D:\User_Data\WSO\Desktop\HM.odb.log in statement [UPDATE "tAuftrag" SET "auf_menge" = ?,"auf_preis" = ? WHERE "auf_id" = ?]
Hier lag acco richtig mit dem Hinweis auf den Formularfilter, da stand tatsächlich ein einsames Blank drin.
Gruss,
Wolfram
RobertG
********
Beiträge: 2067
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Bug im SQL-Generator

Beitrag von RobertG »

Hallo Wolfram,

das Bug-Verhalten scheint noch etwas tiefer zu liegen. Ich habe da jetzt noch etwas Zeit zum Testen und einmal nachgeprüft. Ich kann die Funktion völlig raus nehmen. Dann kommt eine Fehlermeldung, die verständlicher ist: Die Tabellenangabe zu dem verbliebenen Feld "b_value" fehlte ihm. Habe ich eingesetzt. Und dann kam es noch etwas dicker, so dass da irgendetwas mit dem Alias über die GUI nicht funktioniert. Jetzt war in der ersten Abfrage zwar "tab_b"."b_value" untergebracht, sollte aber mit "balance" in der zweiten Frage ansprechbar sein. Sobald ich aber eine Abfrage mit einem Kriterium formuliere, steht da statt "balance" > 0 → "b_value" > 0
Ich versuche einmal die erste Abfrage so weit auseinander zu dröseln, dass erst einmal kein Fehler auftritt. Vielleicht ist es ja schon der Umgang mit einem Alias aus der ersten in der zweiten Abfrage. Erst nach der Beseitigung solch eines Bugs kann dann die nächste Stufe folgen.
Alles Sachen, die mir nie aufgefallen sind, weil ich zwar eventuell die Felder in der GUI-Ansicht zusammenklicke, aber die Bedingungen immer direkt in SQL formuliere.

Edit1: Was mir gerade auffällt: Wenn ich die entsprechende Filtereingabe direkt in der Abfrage "qry_balance" mache, dann nimmt die GUI die Formulierung an. Es scheint da also empfindliche Probleme mit dem Subselect zu geben.

Gruß

Robert
acco
***
Beiträge: 52
Registriert: So, 04.05.2014 19:54

Re: Bug im SQL-Generator

Beitrag von acco »

Hallo Robert, hallo Wolfram,

so wie es bei meinen Tests aussieht, kann die GUI keine Kriterien (Bedingungen) verarbeiten, wenn die Abfrage auf einer Abfrage mit Alias-Namen beruht.

Wenn man in der Abfrage"qry_balancenotzero" die Spalte "debit" hinzufügt und da Kriterium "> 0" eingibt, funktioniert es auch nicht. Die Fehlermeldung gibt aus, das die Spalte "a_value" nicht gefunden wird. Und a_value wird von Alias "debit" repräsentiert. Das ist der Bug.

Gruß

acco

Edit 1: Der Bug wird größer. Ich habe alle Alias-Namen aus der Abfrage entfernt und versucht in Abfrage "qry_balancenotzero" das Kriterium "> 0" einzugeben in der ehemaligen "balance" Spalte - die heißt jetzt "IFNULL( "a_value", 0 ) + IFNULL( "b_value", 0 )" das geht auch nicht. Es kommt "Syntaxfehler in SQL-Ausdruck" dahinter: SQL-Status: HY000, Fehler-Code: 1000 syntax error - unexpected $end - expecting BETWEEN or IN or SQL_TOKEN_LIKE.

Also funktionieren in der GUI auch Abfragen mit Kriterien nicht, die auf Abfragen mit berechneten Feldern basieren.

Edit 2: GUI-Problem zusammengefasst:
Wenn in der 2. Abfrage ein Kriterium in eine Spalte eingegeben wird, in der in der 1. Abfrage kein direkter Bezug auf eine Tabellenspalte gegeben ist, dann kommt eine Fehlermeldung. Das betrifft bisher Spalten mit Alias-Namen und berechnete Spalten.
openSUSE 13.1, LibreOffice 4.3.2.2
Antworten