2009-08-06 5 views
2

Je la mise en place d'un ensemble de données client ADO, et lorsque je tente d'insérer une valeur nulle dans un TIntegerField, sur le Post-je obtenir Project raised exception class EDatabaseError with message 'Non-nullable column cannot be updated to Null'.Comment déclarer un TField comme nul?

Je sais que je l'ai vu un moyen de mettre un TField comme nullable avant, mais je ne me souviens plus où et comment. Est-ce que quelqu'un sait comment réparer ceci?

EDIT: Le champ est défini sur Required = false au moment du design, et j'ai vérifié qu'il est toujours faux lors de l'exécution, mais je reçois toujours l'erreur.

Répondre

4

Avez-vous vérifié si le champ db que ce champ représente a un nu ll contrainte?

+0

* soupir * Bien sûr. C'était le problème ... –

+0

hehehehe ... Ça m'est arrivé tellement de fois ... C'est l'une des premières choses que je vérifie ... ;-) –

1
MyField.Required := False; 
0

De l'aide à Delphi 5:

property Required: Boolean; 

mais méfiez-vous:

property CustomConstraint: String; 

également une implémentation des classes héritées de TDataSet peut ajouter une certaine logique sur leur propre ...

+0

Oui, apparemment c'est le cas ici. –

0

Je ne sais pas si cela aidera, mais cela me semble familier. vérifiez les propriétés sur les champs du jeu de données ado qui alimente les CD. Je sais que dans d7, les cds prennent en interne la propriété readonly de l'ensemble de données du fournisseur, indépendamment de son propre paramètre readonly. le même problème peut s'appliquer à la propriété requise.

Questions connexes