Seite 1 von 2

[GELÖST] Feldeigenschaften des Formulares nicht editierbar

Verfasst: Fr, 11.11.2011 01:26
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?

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

Verfasst: Fr, 11.11.2011 07:15
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?

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

Verfasst: Fr, 11.11.2011 07:17
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.

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

Verfasst: Fr, 11.11.2011 08:16
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

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

Verfasst: Fr, 11.11.2011 09:24
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?

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

Verfasst: Fr, 11.11.2011 10:43
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"

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

Verfasst: Fr, 11.11.2011 10:57
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.

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

Verfasst: Fr, 11.11.2011 11:03
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.

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

Verfasst: Fr, 11.11.2011 11:16
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.

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

Verfasst: Fr, 11.11.2011 11:28
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

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

Verfasst: Fr, 11.11.2011 11:37
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

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

Verfasst: Fr, 11.11.2011 12:09
von OOO-Fan-XL
keine Ahnung, wo ich das Hinschreiben soll

wenn ich auf Abfragen klicke muss ich da irgendwas erstellen....

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

Verfasst: Fr, 11.11.2011 12:12
von DPunch
Aloha

Menüpunkt "Abfragen" im Datenbankdokument, dort "Abfrage in SQL-Ansicht erstellen", dort die Abfrage eingeben.

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

Verfasst: Fr, 11.11.2011 12:19
von OOO-Fan-XL
und dann?

auf dieses kleine SQL klicken?

Hab ich gemacht, passiert nix

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

Verfasst: Fr, 11.11.2011 19:22
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).