Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Standardwerte aus MySQL übernehmen (https://www.delphipraxis.net/92841-standardwerte-aus-mysql-uebernehmen.html)

hanselmansel 27. Mai 2007 11:13

Datenbank: MySQL • Zugriff über: ZEOS

Standardwerte aus MySQL übernehmen
 
Hallo,

ich habe in meiner MySQL-Tabelle (via phpMyAdmin) bei einigen Feldern die Eigenschaft "Null" auf Nein gesetzt und einen Standardwert vergeben.

Meinem Verständnis von MySQL nach sollte damit doch sichergestellt werden, dass ein Wert in diesem Feld verlangt wird, und beim Erstellen eines neuen Datensatzes dieses Feld mit dem Standardwert vorbelegt wird.

Wenn ich nun aus Delphi auf die Tabelle zugreife und einen neuen Datensatz anlege, werden jedoch alle Felder leer initialisiert. Wenn ich allerdings ein Feld, das nicht Null sein darf, frei lasse, gibt er mir diese (richtige) Fehlermeldung aus:
Code:
---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt Project1.exe ist eine Exception der Klasse EZSQLException aufgetreten. Meldung: 'SQL Error: Column 'fahrtenanzahl' cannot be null'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
---------------------------
OK  Hilfe  
---------------------------
Meine Fragen sind nun, ob ich das mit den Einstellungen in phpMyAdmin verhauen habe, und die Einstellungen nicht verstanden habe, oder ob ich beim Zugriff über die ZEOS-Komponenten etwas einstellen muss, damit die Default-Werte auch angezeigt werden.

MfG,


hanselmansel

mkinzler 27. Mai 2007 11:15

Re: Standardwerte aus MySQL übernehmen
 
Der Standardwert wird nur gesetzt, wenn der Wert in der Abfrage nicht gesetzt wird

hanselmansel 27. Mai 2007 11:19

Re: Standardwerte aus MySQL übernehmen
 
Also wird der Standardwert beim Erstellen eines neuen Datensatzes nicht von der DB zum Client übertragen, sondern nur in die Tabelle geschrieben, wenn ich in der INSERT-Anweisung keinen Wert für dieses Feld übergebe?

Demnach müsste ich die Vorbelegung also Client-seitig realisieren, oder?


Vielen Dank für die fixe Antwort! :-D

lG,


hanselmansel

mkinzler 27. Mai 2007 11:22

Re: Standardwerte aus MySQL übernehmen
 
Zitat:

Also wird der Standardwert beim Erstellen eines neuen Datensatzes nicht von der DB zum Client übertragen, sondern nur in die Tabelle geschrieben, wenn ich in der INSERT-Anweisung keinen Wert für dieses Feld übergebe?
Ja
Zitat:

Demnach müsste ich die Vorbelegung also Client-seitig realisieren, oder?
Oder das Feld nicht in den Insert übernehmen


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:03 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz