Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Leonair

erro no ibquery, não atualiza

Recommended Posts

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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.