Forums Neueste Beiträge
 

Access-DB: Leere Zeichenfolge = Nein - wie in SQL Server / Oracle

04/10/2008 - 16:37 von Alberto Luca | Report spam
Hallo NewsGroup,

die Felddefinition in Access: Leere Zeichenfolge = Nein bringt mich immer
wieder in Schwierigkeiten:
=> System.Data.OleDb.OleDbException: Feld 'blabla' darf keine Zeichenfolge
der Lànge Null sein

Vor jedem Insert / Update muss ich den Feldinhalt prüfen und evtl.
DBNull.Value zuweisen.

Soll ich auf diese Felddefinition verzichten und generell die Felder mit
"Leere Zeichenfolge = Ja" definieren und dadurch den Problemen aus dem Weg
zu gehen?

Wie wird dies in anderen DB-Systemen (SQL-Server / Oracle) gehandhabt?
Ist in diesen DB-Systemen diese Option unterstützt?

Besten Dank vorab!
Ciao, Alberto
 

Lesen sie die antworten

#1 Peter Götz
05/10/2008 - 08:51 | Warnen spam
Hallo Alberto,

die Felddefinition in Access: Leere Zeichenfolge = Nein
bringt mich immer wieder in Schwierigkeiten:
=> System.Data.OleDb.OleDbException: Feld 'blabla'
darf keine Zeichenfolge der Lànge Null sein



Wenn die entspr. Felddefinition für dieses Feld
verlangt, dass Zeichenfolgen der Lànge 0 nicht zulàssig
sind, ist diese Meldung völlig in Ordnung.

Vor jedem Insert / Update muss ich den Feldinhalt
prüfen und evtl. DBNull.Value zuweisen.



Wenn das Feld leer (DBNull) bleiben soll, dann
braucht Dein Insert- oder Update erst gar keinen
Wert für dieses Feld übergeben und es bleibt
dann ohnehin leer.

Soll ich auf diese Felddefinition verzichten und
generell die Felder mit "Leere Zeichenfolge = Ja"
definieren und dadurch den Problemen aus dem
Weg zu gehen?



Diese Frage kann man nicht einfach mit Ja oder
Nein beantworten. Nur Du selbst kannst wissen,
ob eine solche Felddefinition sinnvoll ist oder nicht.

Für Felder, die in jedem Fall mit einem gültigen
Wert, z.B. bei einer Adressenverwaltung mit einem
Namen, beschrieben werden sollen, wird man sowohl
Zeichenketten der Lànge 0 als auch DBNull.Value
verbieten um so zu verhindern, dass ein Adressdaten-
satz ohne Namen gespeichert wird.

Es könnte aber auch sein, dass man zulassen will,
dass ein Feld unbeschrieben (DBNull) bleibt oder
mit einem Text, der dann aber auch wirklich mindestens
ein oder mehrere Zeichen haben muss, beschrieben
wird. In diesem Fall würde man bei den Felddefinitionen
Null-Werte zulassen UND Zeichenketten der Lànge Null
verbieten.

Wie wird dies in anderen DB-Systemen (SQL-Server
/ Oracle) gehandhabt?
Ist in diesen DB-Systemen diese Option unterstützt?



Das hat eigentlich nichts mit dem verwendeten DBS zu
tun, sondern hàngt eben von der jeweiligen Aufgaben-
stellung (s.oben) ab. Wenn es bei Deiner speziellen
Aufgabenstellung nicht stört, wenn Zeichenketten der
Lànge 0 vorkommen, kannst Du diese erlauben. Wenn
die Aufgabenstellung aber so ist, dass solche Werte
aus irgendeinem Grund nicht vorkommen sollen, dann
wirst Du solche leeren Strings bei der Felddefinition
eben von vorneherein verbieten. Das Gleiche gilt
für Null-Werte. Auch kommt es eben auf die jeweilige
Aufgabenstellung an, ob solche Werte zugelassen
oder eben nicht zugelassen werden. Da niemand
ausser Dir selbst die konkrete Aufgabenstellung
bisher kennt, kannst nur Du selbst diese Entscheidung
treffen.

Gruß aus St.Georgen
Peter Götz
www.gssg.de (mit VB-Tipps u. Beispielprogrammen)

Ähnliche fragen