Abfrage / Ansicht Null ist nicht Null

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Abfrage / Ansicht Null ist nicht Null

Beitrag von F3K Total »

Hallo,
folgendes Verhalten von Base, embeddet HSQLDB, kann ich nicht nachvollziehen:
Mit den Daten einer Tabelle möchte ich rechnen, Beispiel:
Query_View.png
Query_View.png (28.41 KiB) 798 mal betrachtet
Nun erhalte ich für das identische SQL-Statement unterschiedliche Ergebnisse, siehe Bild.
In der Abfrage steht eine 0 in der Ansicht bleibt das Feld leer.
Genau dies möchte ich haben um Formularfelder zu füllen/leer darzustellen.
Definiere ich aber den Formularinhalt via SQL, erhalte ich das Verhalten einer Abfrage.

Hat jemand eine Idee, wie ich in einer Abfrage leere Felder erzeugen kann?

Gruß Rik
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: Abfrage / Ansicht Null ist nicht Null

Beitrag von DPunch »

Aloha

Das kommt daher, dass die Abfrage in den Standardeinstellungen Formatierungen für Dich vornimmt.
Wenn Du über die Spaltenformatierung (Rechtsklick auf den Spaltenkopf) die führenden Nullen auf 0 stellst, wird auch NULL als NULL dargestellt.
Wenn Du diese Abfrage jetzt so speicherst, kannst Du sie auch in Formularen wie gewünscht verwenden.
Ob es eine Möglichkeit gibt, das nicht mit gespeicherter Abfrage, sondern über Formularinhalt -> SQL so darzustellen? Ich bezweifle es. Aber ich weiss es auch nicht.
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: Abfrage / Ansicht Null ist nicht Null

Beitrag von F3K Total »

Hallo,
das speichern der Formatierung klappt bei mir leider nicht, auch nicht beim neu Anlegen einer Abfrage.
Hintergrund der Frage: Ich wollte die Anzahl der Views meiner DB dadurch reduzieren, das ich möglichst oft die "Art des Inhalts" meiner Formulare von "Tabelle" (Ansicht) auf "SQL-Befehl" umstelle. Dies müßte doch der performantere Weg sein?

Gruß Rik
Zuletzt geändert von F3K Total am So, 18.12.2011 19:37, insgesamt 1-mal geändert.
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: Abfrage / Ansicht Null ist nicht Null

Beitrag von DPunch »

Aloha

Du hast Recht, die Formatierung wird nicht gespeichert.

Eine solche Abfrage produziert bei mir z.B. in einem Tabellenkontrollfeld trotzdem NULL statt "0" in der entsprechenden Spalte.
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: Abfrage / Ansicht Null ist nicht Null

Beitrag von F3K Total »

Hallo DPunch,
bei mir auch, solange ich keine spezielle Formatierung verwende. In meinem Fall möchte ich aber die Einheit [km/h] , habe ich mit folgendem Format-Code definiert #,##[$ km/h], an den berechneten Wert anhängen, und da ergibt sich dann folgendes Verhalten für ein leeres Feld:
format.png
format.png (5.18 KiB) 764 mal betrachtet
Ich denke, ich muß bei der View bleiben.

Gruß Rik
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: Abfrage / Ansicht Null ist nicht Null

Beitrag von DPunch »

Aloha
F3K Total hat geschrieben:das ich möglichst oft die "Art des Inhalts" meiner Formulare von "Tabelle" (Ansicht) auf "SQL-Befehl" umstelle. Dies müßte doch der performantere Weg sein?
Der performantere Weg inwiefern?
Was die Geschwindigkeit der Abfragen selbst betrifft, wahrscheinlich eher im Gegenteil, da jede direkte SQL-Abfrage mindestens bei der ersten Ausführung (vielleicht auch öfter, je nach DBMS und Caching-Einstellungen) pro Session zuerst analysiert und ein Execution Plan aufgestellt werden muss, während gespeicherte Queries und Views das in der Regel schon hinter sich haben. Hängt aber viel vom verwendeten DBMS ab.
Wenn Du Dich auf die Ladezeiten der DB-Datei beziehst - ja, es ist davon auszugehen, dass das schneller wird, je weniger Objekte initialisiert werden müssen.

Ich weiss nicht, ob Du mit den Einheiten rechnen musst, ansonsten könntest Du schon in der Abfrage per Konkatenation das gewünschte Format herstellen.
Keine saubere Lösung und ich würde sie auch nicht verwenden, aber was anderes fällt mir zu diesem speziellen Base-Problem leider auch nicht ein.
Antworten