Pergunta

Eu sou a criação de um conjunto de dados cliente baseado em ADO, e quando eu tentar inserir um valor nulo em uma TIntegerField, on Post eu recebo Project raised exception class EDatabaseError with message 'Non-nullable column cannot be updated to Null'.

Eu sei que eu vi uma maneira de definir um TField como anulável antes, mas eu não consigo lembrar de onde ou como. Alguém sabe como consertar isso?

EDIT:. O campo é definido como Required = false em tempo de design, e eu tenho verificado que ainda é falsa em tempo de execução, mas eu ainda obter o erro

Foi útil?

Solução

Você verificou se o campo db que este campo representa tem uma restrição de não nulo?

Outras dicas

MyField.Required := False;

De ajuda para Delphi 5:

property Required: Boolean;

mas estar ciente de:

property CustomConstraint: String;

Além disso, alguns implementação de classes herdadas de TDataSet pode adicionar alguma lógica por conta própria ...

eu não sei se isso vai ajudar, mas soa familiar. verificar as propriedades nos campos do dataset ado que alimenta os cds. Eu sei que em d7 os cds leva internamente na propriedade somente leitura do conjunto de dados do provedor, independentemente da sua própria configuração de somente leitura. o mesmo problema pode ser aplicada à propriedade necessária.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top