| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
renanbg Colaborador


Registrado: Quinta-Feira, 12 de Abril de 2012 Mensagens: 1158
|
Enviada: Ter Ago 08, 2017 2:23 pm Assunto: DBLookupComboBox Gravar Keyvalue |
|
|
Quando desejo gravar o keyvalue desse componente, basta:
| Código: | | campo tabela := lookup.keyvalue |
Agora, surgiu uma coisa diferente. Liguei o lookup direto no datasource e datafield da tabela.
Aí quando não seleciono nada, o danado grava null ao inves de Zero.
Tentei setar o valor para zero se ele estiver vazio, mas continua gravando null.
Se desvinculo ele do datafield e mando gravar manualmente, então funciona.
Já viram isso? |
|
| Voltar ao Topo |
|
 |
natanbh1 Colaborador

Registrado: Terça-Feira, 15 de Março de 2011 Mensagens: 3093 Localização: Belo Horizonte - MG
|
Enviada: Ter Ago 08, 2017 2:33 pm Assunto: |
|
|
Para testar se está nulo você pode usar VarIsNull.
Exemplo:
| Código: | if VarIsNull(DBLookupCombobox1.KeyValue) then
showmessage('Campo nulo')
else
ShowMessage('Campo não está nulo.'); |
_________________ ''A persistência é o caminho para o êxito.''
Charlie Chaplin |
|
| Voltar ao Topo |
|
 |
leo_cj Colaborador

Registrado: Sábado, 26 de Março de 2011 Mensagens: 1335
|
Enviada: Ter Ago 08, 2017 2:49 pm Assunto: |
|
|
Outra opção seria verificar direto pelo campo na query, ex:
| Código: | procedure TForm1.Button4Click(Sender: TObject);
begin
if (ClientDataSet2.FieldByName('CountryID').IsNull) then
ClientDataSet2.FieldByName('CountryID').AsInteger := 0;
ClientDataSet2.Post;
end; |
|
|
| Voltar ao Topo |
|
 |
renanbg Colaborador


Registrado: Quinta-Feira, 12 de Abril de 2012 Mensagens: 1158
|
Enviada: Ter Ago 08, 2017 3:00 pm Assunto: |
|
|
| natanbh1 escreveu: | Para testar se está nulo você pode usar VarIsNull.
Exemplo:
| Código: | if VarIsNull(DBLookupCombobox1.KeyValue) then
showmessage('Campo nulo')
else
ShowMessage('Campo não está nulo.'); |
|
Sim, DBLookupCombobox.
Fiz o teste o ele está nulo, quando não seleciono nenhum texto.
Interessante que se não ligo ele no datasource e datafield, ele assume o valor zero (0)
Acho que vou trocar os dbedits por edits e gravar no braço, assim resolvo. |
|
| Voltar ao Topo |
|
 |
|