ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

DBLookupComboBox Gravar Keyvalue

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
renanbg
Colaborador
Colaborador


Registrado: Quinta-Feira, 12 de Abril de 2012
Mensagens: 1158

MensagemEnviada: Ter Ago 08, 2017 2:23 pm    Assunto: DBLookupComboBox Gravar Keyvalue Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
natanbh1
Colaborador
Colaborador


Registrado: Terça-Feira, 15 de Março de 2011
Mensagens: 3093
Localização: Belo Horizonte - MG

MensagemEnviada: Ter Ago 08, 2017 2:33 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
leo_cj
Colaborador
Colaborador


Registrado: Sábado, 26 de Março de 2011
Mensagens: 1335

MensagemEnviada: Ter Ago 08, 2017 2:49 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
renanbg
Colaborador
Colaborador


Registrado: Quinta-Feira, 12 de Abril de 2012
Mensagens: 1158

MensagemEnviada: Ter Ago 08, 2017 3:00 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB