![]() |
Datenbank: Access • Zugriff über: ADO
Access "leere Zeichenfolge" erlauben
Guden,
ich arbeite an einem Programm, welches Access Datenbanken benutzt. Access bietet bei Feldeigenschaften den Wert "Leere Zeichenfolge erlauben". Bis jetzt hat der Wert anscheinend keinen interessiert - bis Windows 7 kam. In den DB's ist des Programms ist der Wert auf "Nein" gestellt. Bis jetzt hat auch alles wunderbar geklappt, nur wurde seit Win7 anscheinend eine Überprüfung eingeführt, ob die Felder auch wirklich nicht leer sind. Das war bis jetzt nicht so. Ab Win 7 wirft Delphi Exceptions. Im Grunde ist das auch alles gut so, nur stehe ich nun vor dem Problem, dass die besagten Felder in den Datenbanken nun auf "Leere Zeichenfolge erlauben := jup" umgestellt werden müssen. Manuell gehts nich, weil die Kunden auch in Italien etc sitzen und man denen nich sagen kann, dass sie es ma eben umstellen sollen. Also muss ich das iwie via Code machen, welcher beim Programmupdate ausgeführt wird. Aber wo? Ist der Eintrag in irgendwelchen Systemtabellen hinterlegt auf die ich via SQL zugreifen kann? Gruß |
Re: Access "leere Zeichenfolge" erlauben
Gab es einen Grund für das not NULL? Wenn ja wäre es vielleicht sinnvoller das Programm anzupassen
|
Re: Access "leere Zeichenfolge" erlauben
Ne. NULL is erlaubt. Das Problem sind Leere Zeichenfolgen. Also der Value eines Textfeldes wäre dann: ''
Das Problem ist, dass die Daten so abgespeichert werden wie sie in den Forms stehen. Also wenn ein Edit leer ist, dann wird ein Leerstring reingeschrieben. Das Feld ist ja dann sozusagen nicht mehr NULL. Nur die Programmlogik zu ändern und die zig tausend Stellen zu finden, wo anstatt Leerstring dann das Feld NULL gesetzt werden müsste ist denke ich noch komplexer, als den Wert zu ändern. Zumal dann auch die Wahrscheinlichkeit nicht allzu gering wäre, dass man was übersieht. Gruß Edit: Die Lösung fand sich nun doch ziemlich fix:
Delphi-Quellcode:
procedure TDbu.ChangeProperties(scon: string);
var Catalog: _Catalog; begin Catalog := CoCatalog.Create; Catalog.Set_ActiveConnection(scon); Catalog.Tables['Stammdata'].Columns['PruefOrtName'].Properties['Jet OLEDB:Allow Zero Length'].Value := true; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:48 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz