[GELÖST] Feldeigenschaften des Formulares nicht editierbar

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

OOO-Fan-XL
**
Beiträge: 24
Registriert: So, 30.10.2011 02:57

[GELÖST] Feldeigenschaften des Formulares nicht editierbar

Beitrag von OOO-Fan-XL »

Hallo

ich erhalte folgende Fehlermeldung, wenn ich die Eigenschaften eines Feldes ändern und das Formular dann speichern möchte.
Der Fehler tritt nur dann auf, wenn man "Eingabe erforderlich" von NEIN auf JA setzt.

Die Meldung lautet: Warnung! Die Spalte BLZ konnte nicht geändert werden. Soll sie statt dessen gelöscht und das neue Format angehängt werden?

JA -- NEIN -- ZUSÄTZE

Bei Klick auf ZUSÄTZE erscheint bei FEHLER folgende Information

SQL-Status: 23000
Fehler-Code: -10

Attempt to insert null into a non-nullable column: column: BLZ table: Raumverwaltung in statement [ALTER TABLE "Raumverwaltung" ALTER COLUMN "BLZ" CHAR(50) NOT NULL]

Noch ein Hammer:

ich habe alle Felder im Formular geprüft, überall steht Eingabe erforderlich auf JA und Leere Zeichenfolge ist NULL auf JA und bei Allgemein max. Textlänge auf 0
Also total widersprüchlich zu den Eigenschaften der Felder in der zugehörigen Tabelle

Ich werde noch wahnsinnig............

Was würde das denn bedeuten, wenn ich den Vorschlag des Löschens und Anhängens mit JA annehmen würde? Hab ich dann neue Probleme?
Zuletzt geändert von OOO-Fan-XL am Sa, 12.11.2011 00:55, insgesamt 1-mal geändert.
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: Feldeigenschaften des Formulares können nicht geändert w

Beitrag von DPunch »

Aloha
OOO-Fan-XL hat geschrieben:Attempt to insert null into a non-nullable column: column: BLZ table: Raumverwaltung in statement [ALTER TABLE "Raumverwaltung" ALTER COLUMN "BLZ" CHAR(50) NOT NULL]
Die Fehlermeldung ist doch eindeutig.
Du hast in Deiner Tabelle "Raumverwaltung" Datensätze, die NULL in der Spalte "BLZ" stehen haben, daher kannst Du die Änderung nicht einfach so vornehmen.
OOO-Fan-XL hat geschrieben:ich habe alle Felder im Formular geprüft, überall steht Eingabe erforderlich auf JA und Leere Zeichenfolge ist NULL auf JA und bei Allgemein max. Textlänge auf 0
Also total widersprüchlich zu den Eigenschaften der Felder in der zugehörigen Tabelle
Nichtmal im Ansatz.
Eingabe erforderlich übernimmt er aus dem Feld der Tabelle.
Maximale Textlänge = 0 bedeutet keine Begrenzung.
Leere Zeichenfolge ist NULL bedeutet, dass eine leere Zeichenfolge im Textfeld nicht als Leerstring, sondern als NULL interpretiert wird.
Ansonsten würdest Du nie eine Fehlermeldung erhalten, wenn jemand im Formular das Feld nicht ausfüllt und den Datensatz speichert.
Wo sollen da bitte Widersprüche sein?
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Feldeigenschaften des Formulares können nicht geändert w

Beitrag von komma4 »

OOO-Fan-XL hat geschrieben:Attempt to insert null into a non-nullable column: column: BLZ table: Raumverwaltung in statement [ALTER TABLE "Raumverwaltung" ALTER COLUMN "BLZ" CHAR(50) NOT NULL]
Das bedeutet, dass Du in der Tabelle leere Zeilen der Spalte BLZ hast.
Fülle diese zuerst, bevor Du die Eigenschaft umsetzt.
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
OOO-Fan-XL
**
Beiträge: 24
Registriert: So, 30.10.2011 02:57

Re: Feldeigenschaften des Formulares können nicht geändert w

Beitrag von OOO-Fan-XL »

Ach so ist das, ich kann das nichg global ändern, sondern ich muss erst mal einen Inhalt da reinschreiben? Wie umständlich ist das denn?

Ausserdem stimmt das nicht, denn ich habe Felder, bei denen kann ich die Eigenschaften ändern kann (auch alle im Text [VARCHAR] Format, obwohl auch nichts in den ZEILEN steht

der Widerspruch sieht so aus, zum Beispiel für das Feld BLZ (ich möchte dort die Bankleitzahl haben)

in der Tabelle steht Eingabe erforderlich auf NEIN (weil ich es ja nicht ändern kann), Länge steht auf 8 (weil es meines Wissens nur 8stellige Bankleitzahlen gibt), Default Wert ist nichts ausgefüllt und bei Format-Beispiel ist ein hellgraues @ zu sehen

So, nun die Eigenschaften des Feldes in dem dazugehörigen Formular zur Datenerfassung

Bei ALLGEMEIN
max. Textlänge steht eine 0, anstelle der 8 aus der Tabelle

Bei DATEN
Eingabe erforderlich steht jetzt auf einmal JA (in der Tabelle kann ich das NEIN nicht auf JA setzen)

Leere Zeichenfolge ist NULL steht auch auf JA

Kann mir jemand diese Widersprüche erklären?

Ich habe den Vorschlag von komma4 ausprobiert:

Ich habe eine Bankleitzahl in die Tabelle geschrieben und die Tabelle gespeichert. Nun kann ich immernoch nicht die Feldeigenschaft "Eingbe erforderlich" von NEIN auf JA setzen. Dann habe ich in alle Felder aller Datensätze eine Bankleitzahl eingetragen und es wieder ausprobiert, den Wert zu ändern, FEHLANZEIGE. Wieder die gleiche Fehlermeldung wie zu Beginn des Threads beschrieben.

mir scheint, das Base Modul ist noch nicht so ganz ausgereift
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: Feldeigenschaften des Formulares können nicht geändert w

Beitrag von DPunch »

Aloha
OOO-Fan-XL hat geschrieben:Ach so ist das, ich kann das nichg global ändern, sondern ich muss erst mal einen Inhalt da reinschreiben? Wie umständlich ist das denn?
Das ist nicht umständlich, sondern ganz im Sinne derer, die nicht wissen, was genau sie tun.
Es ist sozusagen ein "Feature", dass beim Sicherstellen der Datenkonsistenz helfen soll.
Du könntest Dir fürs Erste Abhilfe schaffen, indem Du über Extras -> SQL einen Befehl wie

Code: Alles auswählen

UPDATE "Raumverwaltung" SET "BLZ" = '' WHERE "BLZ" IS NULL
absetzt, aber das ist nicht Sinn und Zweck einer non-nullable-column.
OOO-Fan-XL hat geschrieben:Kann mir jemand diese Widersprüche erklären?
Ich sehe da immer noch keine Widersprüche.
Möglicherweise holt sich das Formularfeld seine Voreinstellungen doch nicht aus der verknüpften Spalte, sondern bringt diese einfach mit, das weiss ich nicht aus dem Kopf, aber mit Widersprüchen hat das trotzdem nichts zu tun.
Alles, was Du ändern musst, bzw. solltest, ist die maximale Textlänge, wo ist das Problem?
OOO-Fan-XL hat geschrieben:Dann habe ich in alle Felder aller Datensätze eine Bankleitzahl eingetragen und es wieder ausprobiert, den Wert zu ändern, FEHLANZEIGE. Wieder die gleiche Fehlermeldung wie zu Beginn des Threads beschrieben.
Das Verhalten ist für mich nicht reproduzierbar, wenn kein Datensatz in der entsprechenden Spalte NULL ist, lässt sich die Einstellung problemlos ändern.
Was gibt Dir die Abfrage

Code: Alles auswählen

SELECT * FROM "Raumverwaltung" WHERE "BLZ" IS NULL
für ein Ergebnis?
OOO-Fan-XL
**
Beiträge: 24
Registriert: So, 30.10.2011 02:57

Re: Feldeigenschaften des Formulares können nicht geändert w

Beitrag von OOO-Fan-XL »

Ja doch, ich kann es NICHT ändern, obwhol in ALLEN Datensätzen jetzt ein BLZ im Feld "BLZ" steht

wo muss ich die Abfrage denn eingeben, dieses UPDATE "Raumverwaltung" SET "BLZ" = '' WHERE "BLZ" IS NULL

und wieso soll ich die maximale Textlänge ändern? 8 Zeichen für die BLZ reichen doch aus?

Wenn der Widerspruch IMMERNOCH nicht klar geworden ist, dann mache ich mal Screenshots von den sich für ein und dasselbe Feld widersprechenden Einstellungen, einmal von der Tabelle und dann vom Formular, vielleicht wird es dann ersichtlich, vielleicht klärt sich auch, warum ich bei Feldern, die bisher definitiv leer sind, ich die Änderungen machen kann

Denn dann klärt sich auch, wie wo was Vorrang hat

holt sich die Datenbank die Pflicht zum Ausfüllen des Feldes aus der Tabelle oder aus dem zugewiesenen Kombinations- oder Listenfeld aus dem Formular. Mir erschliesst sich auch nicht der Sinn, warum für beides die gleichen Einstellungen vergeben werden können und diese sich sogar widersprechen dürfen


By the way, ich lese gerade das Buch von Thomas Krumbein "Datenbanken mit OpenOfficeOrg 3"
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: Feldeigenschaften des Formulares können nicht geändert w

Beitrag von DPunch »

Aloha
OOO-Fan-XL hat geschrieben:wo muss ich die Abfrage denn eingeben, dieses UPDATE "Raumverwaltung" SET "BLZ" = '' WHERE "BLZ" IS NULL
"Extras" -> "SQL..."
OOO-Fan-XL hat geschrieben:und wieso soll ich die maximale Textlänge ändern? 8 Zeichen für die BLZ reichen doch aus?
Du hast Dich über die Voreinstellungen des Textfeldes beschwert.
Ich sagte, dass die Voreinstellungen des Textfeldes alles erfüllen, was Du haben wolltest, abgesehen von der Textlänge, die Du auf 8 ändern könntest, weil Deine Tabellenspalte "BLZ" sowieso nur 8 Zeichen zulassen würde.
Jetzt verstanden?
OOO-Fan-XL hat geschrieben:Wenn der Widerspruch IMMERNOCH nicht klar geworden ist
Es gibt keinen Widerspruch.
Ich glaube, Dir sind lediglich die Zusammenhänge nicht ganz klar.
Das Textfeld in einem Formular an sich hat erstmal herzlich wenig mit der Datenbank zu tun. Genausowenig das Formular.
OOO-Fan-XL hat geschrieben:holt sich die Datenbank die Pflicht zum Ausfüllen des Feldes aus der Tabelle
Selbstverständlich.
Das Formular bietet Dir lediglich eine optische Darstellung, im Hintergrund werden daraus Anweisungen an die Datenbank gebastelt und an diese weitergereicht.
Dort wird dann überprüft, ob die Anweisungen umsetzbar sind und mit den Spaltendefinitionen übereinstimmen.
OOO-Fan-XL hat geschrieben:Denn dann klärt sich auch, wie wo was Vorrang hat
Das einzige, was zählt, ist die Tabellendefinition.
Was Du im Formular einstellst, hat nullkommanull Einfluss auf die Tabelle.
OOO-Fan-XL
**
Beiträge: 24
Registriert: So, 30.10.2011 02:57

Re: Feldeigenschaften des Formulares können nicht geändert w

Beitrag von OOO-Fan-XL »

OK

also Dein Befehl SELECT * FROM "Raumverwaltung" WHERE "BLZ" IS NULL

liefert

1: Befehl erfolgreich ausgeführt.

Wenn dem so ist wie Du sagst, wozu sind dann die Einstellungsmöglichkeiten im Formular für das BLZ Feld überhaupt vorhanden? Wenn hier Eingabepflicht auf JA gesetzt werden kann und in der dazugehörigen Tabelle, im entsprechenden Feld BLZ auf "NEIN", ist das ganz klar ein Widerspruch und schafft nur Verwirrung und erschwert die Fehlersuche

Was hat jetzt dieser Befehl SELECT * FROM "Raumverwaltung" WHERE "BLZ" IS NULL gebracht?

Edit: ich seh schon, nix, denn ich kann wieder die Engabepflicht in der Tabelle für das Feld nicht ändern.
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: Feldeigenschaften des Formulares können nicht geändert w

Beitrag von DPunch »

Aloha
OOO-Fan-XL hat geschrieben:also Dein Befehl SELECT * FROM "Raumverwaltung" WHERE "BLZ" IS NULL
liefert
1: Befehl erfolgreich ausgeführt.
Diesen Befehl solltest Du als stinknormale Abfrage absetzen, nicht über Extras -> SQL.
Und dann über das Ergebnis berichten.
OOO-Fan-XL hat geschrieben:Wenn dem so ist wie Du sagst, wozu sind dann die Einstellungsmöglichkeiten im Formular für das BLZ Feld überhaupt vorhanden? Wenn hier Eingabepflicht auf JA gesetzt werden kann und in der dazugehörigen Tabelle, im entsprechenden Feld BLZ auf "NEIN", ist das ganz klar ein Widerspruch und schafft nur Verwirrung und erschwert die Fehlersuche
Das genaue Gegenteil ist der Fall.
Das Formular gibt Dir die Möglichkeit, Daten von vornherein zu validieren, bevor Du sie an die Datenbank weiterreichst.
Warum sollte es ein Widerspruch sein, dass Du in Deinem Formular eine Eingabe verlangst, obwohl dies aus Sicht der Datenbank nicht unbedingt nötig wäre?
Ich kann Dir da ehrlich gesagt überhaupt nicht folgen.
Ich kann Dir nur sagen, dass es gut und sinnvoll ist, so wie es ist.
OOO-Fan-XL
**
Beiträge: 24
Registriert: So, 30.10.2011 02:57

Re: Feldeigenschaften des Formulares können nicht geändert w

Beitrag von OOO-Fan-XL »

Gut

so wie Du es erklärst macht es JETZT erst Sinn. Find ich dann sogar gut.

so gelten also ganz separat betrachtet diese Einstellungen einmal NUR für das Formular, als Anwenderschutz vielleicht, und in der TABELLE dann
für die Datenbank.

aber warum verdammt, kann ich die Feldeigenschaften nicht ändern, wie bekomme ich heraus wo der Fehler liegt?

zum Beispiel für das Feld "Bank Name" oder auch "Kontonummer" kann ich fröhlich welchseln zwischen Eingabe erforderlich ja oder nein, und diese Felder sind in der
Tabelle ALLE leer... komplett alle
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: Feldeigenschaften des Formulares können nicht geändert w

Beitrag von DPunch »

Aloha
OOO-Fan-XL hat geschrieben:so gelten also ganz separat betrachtet diese Einstellungen einmal NUR für das Formular, als Anwenderschutz vielleicht, und in der TABELLE dann für die Datenbank.
Genau das.
Formulare sind schliesslich nicht der einzige Weg, auf die Datenbank zuzugreifen.
OOO-Fan-XL hat geschrieben:aber warum verdammt, kann ich die Feldeigenschaften nicht ändern, wie bekomme ich heraus wo der Fehler liegt?
Was ergibt die von mir vorgeschlagene Abfrage für ein Ergebnis?

Code: Alles auswählen

SELECT * FROM "Raumverwaltung" WHERE "BLZ" IS NULL
OOO-Fan-XL
**
Beiträge: 24
Registriert: So, 30.10.2011 02:57

Re: Feldeigenschaften des Formulares können nicht geändert w

Beitrag von OOO-Fan-XL »

keine Ahnung, wo ich das Hinschreiben soll

wenn ich auf Abfragen klicke muss ich da irgendwas erstellen....
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: Feldeigenschaften des Formulares können nicht geändert w

Beitrag von DPunch »

Aloha

Menüpunkt "Abfragen" im Datenbankdokument, dort "Abfrage in SQL-Ansicht erstellen", dort die Abfrage eingeben.
OOO-Fan-XL
**
Beiträge: 24
Registriert: So, 30.10.2011 02:57

Re: Feldeigenschaften des Formulares können nicht geändert w

Beitrag von OOO-Fan-XL »

und dann?

auf dieses kleine SQL klicken?

Hab ich gemacht, passiert nix
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: Feldeigenschaften des Formulares können nicht geändert w

Beitrag von DPunch »

Aloha
OOO-Fan-XL hat geschrieben:auf dieses kleine SQL klicken?
Nein, auf das Symbol "Abfrage ausführen" (alternativ gibt es dafür den Shortcut F5).
Antworten