Leonair 0 Denunciar post Postado Março 20, 2008 Pessoal estou fazendo o seguinte: faço uma seleção usando uma ibquery, e logo depois quero percorrer na ibquery para capturar um dado e jogar ele para um combobox....mais ele não da erro, so não entra no while not ibqbenef.eof....sendo que era para entrar, pois antes de fazer essa consulta eu armazenei dados na tabela de benificio. abaixo eu mostro o codigo da consulta e do cadastro...se eu saio do programa e entro novamente ele aparece, mais em tempo de excecução ele não mostra os dados inserido novos codigo - consulta IBQbenef.Close; IBQbenef.SQL.Clear; IBQbenef.SQL.Add('select * from TB_BENIFICIO ORDER by CODSEGURADO'); IBQbenef.Open; combobox2.Items.Clear; IBQbenef.Close; IBQbenef.Open; IBQbenef.First; While Not IBQbenef.Eof do begin ComboBox2.Items.Add(' '+IBQbenef.FieldByname('CODSEGURADO').AsString); IBQbenef.Next; End; codigo cadastro [code] with IBQBenificios do begin try if IBTBenificios.Active then IBTBenificios.Commit; IBTBenificios.StartTransaction; IBQBenificios.Close; IBQBenificios.SQL.Clear; IBQBenificios.SQL.Add('insert into tb_benificio values (:vcodbenificio, '); IBQBenificios.SQL.Add(':vtipo_benificio, '); IBQBenificios.SQL.Add(':vcodsegurado, '); IBQBenificios.SQL.Add(':vdatainicio, '); IBQBenificios.SQL.Add(':vdatafim, '); IBQBenificios.SQL.Add(':vhistorico, '); IBQBenificios.SQL.Add(':vbenifcio_dias, '); IBQBenificios.SQL.Add(':vvalor_beneficio, '); IBQBenificios.SQL.Add(':vremuneracao,'); IBQBenificios.SQL.Add(':vflag,'); IBQBenificios.SQL.Add(':vcodseg)'); IBQBenificios.parambyname('vcodbenificio').AsInteger:=cod; IBQBenificios.parambyname('vtipo_benificio').AsString:=benificio.Text; IBQBenificios.parambyname('vcodsegurado').AsString:=segurados.Text; IBQBenificios.parambyname('vdatainicio').AsDate:=Inicio.Date; IBQBenificios.parambyname('vdatafim').AsDate:=Fim.Date; IBQBenificios.parambyname('vhistorico').AsString:=edit3.Text; IBQBenificios.parambyname('vbenifcio_dias').asinteger:=strtoint(nrodia.text); IBQBenificios.parambyname('vvalor_beneficio').AsCurrency:=strtocurr(edit1.Text); IBQBenificios.parambyname('vremuneracao').AsCurrency:=strtocurr(edit2.Text); if label6.Checked = true then IBQBenificios.parambyname('vflag').AsString:='1' else IBQBenificios.parambyname('vflag').AsString:='2'; IBQBenificios.parambyname('vcodseg').AsInteger:=strtoint(edit4.Text); IBQBenificios.ExecSQL; IBTBenificios.Commit; certo:=1 except IBTBenificios.Rollback; showMessage('Ocorreu um erro ao tentar salvar informações.'); exit; end; end; valeu galera.....se puderem me ajudar agradeço....abraços Compartilhar este post Link para o post Compartilhar em outros sites
Allan L. 0 Denunciar post Postado Março 21, 2008 Tenta adicionar esse codigo antes de entrar na estrutura While. IBQbenef.Bof Ainda não testei esse codigo, mas espero ter ajudado. Abraço! Compartilhar este post Link para o post Compartilhar em outros sites
Leonair 0 Denunciar post Postado Março 24, 2008 ola amigo, coloque IBQbenef.Bof, como você havia dito, mais da erro, ai consegui acrescentar o seu codigo da seguinte maneira if IBQbenef.Bof then begin IBQbenef.Close; IBQbenef.Open; IBQbenef.First; While Not IBQbenef.Eof do begin ComboBox2.Items.Add(' '+IBQbenef.FieldByname('CODSEGURADO').AsString); IBQbenef.Next; End; end; Mais não funcionou, continua não inserindo o ultimo beneficiario no combobox. inseri so depois que saiu e entro no programa novamente.. Veleu amigo Compartilhar este post Link para o post Compartilhar em outros sites
Allan L. 0 Denunciar post Postado Março 24, 2008 Bom.. adiciona o codigo pra buscar o beneficiario depois que sair do While. if IBQbenef.Bof then begin IBQbenef.Close; IBQbenef.Open; IBQbenef.First; While Not IBQbenef.Eof do begin ComboBox2.Items.Add(' '+IBQbenef.FieldByname('CODSEGURADO').AsString); IBQbenef.Next; End; //Repetindo instrucoes do While ComboBox2.Items.Add(' '+IBQbenef.FieldByname('CODSEGURADO').AsString); IBQbenef.Next; end; Tenta adicionar esse. Talvez ele não esteja "lendo" o ultimo registro pq deve sair quando chega no ultimo registro ("oq acho menos provavel. nunca aconteceu cmg."). Mas espero que essa linha de cod funcione. Vlw! Compartilhar este post Link para o post Compartilhar em outros sites
Leonair 0 Denunciar post Postado Março 26, 2008 amigo não adiantou....ficou do mesmo jeito, preciso sair do sistemas para que ele reconheca o ultimo dado inserido....cara to para ficar louco com isso, muito estranho....mais valeu...obrigado Compartilhar este post Link para o post Compartilhar em outros sites