Ir para conteúdo

POWERED BY:

Arquivado

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

Rodrigo Miss

Problema

Recommended Posts

Boa tarde pessoal, desculpa postar esse trecho enorme de codigo, mais axo q fika mais facil pra analizar:

 

procedure TfrmFechaCaixa.btnProcurarClick(Sender: TObject);beginif frmCaixa = nil then	begin	frmCaixa:= TfrmCaixa.Create(Application);	dtmConn.qryCaixa.Close;	dtmConn.qryCaixa.SQL.Clear;	dtmConn.qryCaixa.SQL.Add('SELECT * FROM ABERTURACAIXA WHERE ABERTO=1 ORDER BY ID');	dtmConn.qryCaixa.Open;	frmCaixa.btnEnviar.Visible:= true;	frmCaixa.btnEnviar.Top:= 6;	frmCaixa.btnEnviar.Left:= 193;	frmCaixa.btnSalvar.Visible:= false;	if frmCaixa.ShowModal = mrOK then		begin		if dtmConn.qryCaixa.IsEmpty then		begin		frmCaixa:= nil;		frmCaixa.Free;		abort;		exit;		end		else		btnSalvar.Enabled:= true;		IdCxFechar:= dtmConn.qryCaixaID.Value;		qryAux.Close;		qryAux.SQL.Clear;		qryAux.SQL.Add('SELECT TIPO_PGTO, SUM(VALOR_ENTRADA) AS VALOR_ENTRADA,');		qryAux.SQL.Add('SUM(VALOR_SAIDA) AS VALOR_SAIDA');		qryAux.SQL.Add('FROM MOVIMENTO_CAIXA WHERE ID_CAIXA =' + IntToStr(IdCxFechar));		qryAux.SQL.Add('GROUP BY TIPO_PGTO');		qryAux.Open;		txtData.Date:= dtmConn.qryCaixaDATA_ABERTURA.Value;		txtConsulta.Text:= dtmConn.qryCaixaID_DIA.Text;		lblUser.Caption:= dtmConn.qryCaixaUSUARIO.Value;		lblPainel.Caption:= 'Fechamento de Caixa [' + lblUser.Caption + ']';		end;

Minha duvida ta aki:

Sera q seria o correto deletar e inserir novo registro???? com issu naum iria deixar o banco "poluido"?

Explicacao:

Eu deleto os registros q ja existem... pq digamos q o user entra nessa tela pra fechar o cx e abaca naum concluindo o fechamento... mais mesmo q naum clikem no botao FEcharCx... ja foi gravado na tabela os agrupamentos de formas de pagamentos.... entao c naum deletar na proxima vez q entrar vai duplicar o agrupamento.....

 

qry.Close;

qry.SQL.Clear;

qry.SQL.Add('SELECT * FROM FECHAMENTO_CX_TIPOLCTO WHERE ID_CAIXA =' + IntToStr(IdCxFechar));

qry.Open;

if not qry.IsEmpty then

begin

while not qry.Eof do

qry.Delete;

qry.Next;

end;

 

qryAux.First;			while not qryAux.Eof do				begin				qry.Close;				qry.Open;				qry.Insert;				qryTIPO_LCTO.Value:= qryAuxTipo_Pgto.Value;				qryVALOR_ENTRADA.Value:= qryAuxVALOR_ENTRADA.Value;				qryVALOR_SAIDA.Value:= qryAuxVALOR_SAIDA.Value;				qryID_Caixa.Value:= IdCxFechar;				qryData_Fech.Value:= Date;				qry.Post;				qryAux.Next;				end;	qry.Close;	qry.SQL.Clear;	qry.SQL.Add('SELECT * FROM FECHAMENTO_CX_TIPOLCTO WHERE ID_CAIXA =' + IntToStr(IdCxFechar));	qry.Open;	end;frmCaixa:= nil;frmCaixa.Free;end;
Alguem pode me ajudar nessa?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que poluição não teria, visto que como você mesmo falou, acaba deletando e inserindo novamente os registro, outra coisa que se poderia fazer é criar uma tabela temporária, onde que iria receber estes registros, e somente quando clicar em "Salvar" iria pegar os registros desta tabela temp e lançar para a full, sendo assim sempre poderia limpar e carregar toda a tabela temporária, sem se preocupar com demais controles...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cria uma tabela normal no BD, mas ela será usada somente para esta finalidade, ou seja, não terá registros fixos, pode criar com os campos que vai exibir no grid... pois sempre vai ser limpado e adicionado os valores novamente...

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.