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 

TDBComboBox - Resolvido

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
deivid.santos
Novato
Novato


Registrado: Quarta-Feira, 26 de Outubro de 2011
Mensagens: 20

MensagemEnviada: Qua Out 26, 2011 1:09 pm    Assunto: TDBComboBox - Resolvido Responder com Citação

Olá, inseri um TDBcomboBox, inseri 2 itens (sim) e (não), preciso armazernar no banco Mysql, só que meu campo é INT. Então pensei assim:
SIM=0
NÃO=1
Fiz o seguinte código mas esta dando erro, pelo que percebi ele esta tentando armazenar string.

if cbadmin.Text = 'SIM' then
md.tbtecnico.FieldByName('admin').AsString := '0'
else
md.tbtecnico.FieldByName('admin').AsString := '1';
md.tbtecnico.Post;
.


Alguem poderia me ajudar, desde ja grato.


Editado pela última vez por deivid.santos em Qua Out 26, 2011 3:20 pm, num total de 1 vez
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Qua Out 26, 2011 1:42 pm    Assunto: Responder com Citação

Acho que você poderia utilizar um TDBRadioGroup ou um TDBCheckBox, pois ambos possuem uma propriedade para colocar os valores a serem gravados no campo (Values e ValueChecked / ValueUnChecked respectivamente).
Da forma como você tentou, experimente da seguinte forma:

Código:
if cbadmin.Text = 'SIM' then
    md.tbtecnico.FieldByName('admin').AsInteger := 0
else
    md.tbtecnico.FieldByName('admin').AsInteger := 1;


Se não funcionar, poste a mensagem de erro.

Espero que ajude.


Editado pela última vez por imex em Ter Dez 05, 2023 9:52 am, num total de 1 vez
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
deivid.santos
Novato
Novato


Registrado: Quarta-Feira, 26 de Outubro de 2011
Mensagens: 20

MensagemEnviada: Qua Out 26, 2011 1:53 pm    Assunto: Responder com Citação

Fiz as modificações mas continua com o mesmo erro.

Citação:
Mensagem: EdataBaseError with message "SIM" is not a valid integer value for field 'admin'.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Qua Out 26, 2011 2:19 pm    Assunto: Responder com Citação

O DBComboBox atribui o valor selecionado ao campo, por isso ocorre este erro.
Para utilizar este código que você postou é necessário utilizar um TComboBox no lugar do TDBComboBox, mas também vai ser necessário utilizar código para exibir o texto na consulta.
Se for para utilizar o TDBComboBox você pode utilizar código nos eventos OnGetText e OnSetText do campo. Ex:

Código:
procedure Tmd.tbtecnicoadminGetText(Sender: TField;
  var Text: String; DisplayText: Boolean);
begin
if tbtecnicoadmin.AsInteger = 0 then
    Text := 'Sim'
else
    Text := 'Não';
end;

procedure Tmd.tbtecnicoadminSetText(Sender: TField;
  const Text: String);
begin
if Text = 'Sim' then
    tbtecnicoadmin.AsInteger := 0
else
    tbtecnicoadmin.AsInteger := 1;
end;


Ainda acho que seria melhor utilzar um TDBRadioGroup ou um TDBCheckBox. Dispensaria todos os códigos.

Espero que ajude.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
deivid.santos
Novato
Novato


Registrado: Quarta-Feira, 26 de Outubro de 2011
Mensagens: 20

MensagemEnviada: Qua Out 26, 2011 3:19 pm    Assunto: Concluido Responder com Citação

Obrigado, utilizei o TDBRadioGroup.
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