Ir para conteúdo

POWERED BY:

Arquivado

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

Luan Martins ...

[Resolvido] Delphi/Firebird

Recommended Posts

Bem meu problema é o seguinte, estou fazendo um tabralho de conclusão de curso (TCC),
só que as tabelas só estão atualizando quando se encerra o progama, ou seja, quando se faz
uma consulta ou relatório os dados novos só vão aparecer se o sistema for encerrado.

Já tentei dar refresh depois de cadastrar
Dar Commit no DBTransiction, e depois abrir novamente as tabelas

Mas nada funcionou, pls se alguem ajudar agradeço pq minha apresntação ta marcada
pra 25/06.

pls Ajuda

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos com calma ai amigo... como você está fazendo para cadastrar e atualizar as tabelas? Que código está usando? Que componentes? Que BD?

 

Detalhe melhor seu problema senão fica difícil ajudar...

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos com calma ai amigo... como você está fazendo para cadastrar e atualizar as tabelas? Que código está usando? Que componentes? Que BD?

 

Detalhe melhor seu problema senão fica difícil ajudar...

 

[]'s

Não intendi muito bem, mais vamu la com oque eu acho q intendi...

Para cadastrar o codigo que uso e insert , e depois post

e a atualição logo que clico no botão post, ele da um .refresh

 

BD firebird 2.0

 

Componentes:

IBDatabase

IBTransiction

IBTable

 

<Desculpa ae se interpretei a pergunta errada>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, o que eu queria ver era o código que está usando para fazer isto... fica mais fácil analisar tendo o código. Pode copiar os trechos responsáveis pelas inserções/atualizações/deletes de um dos forms com problema para análise?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Inserções:

 

DM_BIBLIOTECA.IBT_ACERVO_AUTOR.Insert;

DM_BIBLIOTECA.IBT_ACERVO_AUTORAAU_DTCAD.Value:= Date ;

DM_BIBLIOTECA.IBT_ACERVO_AUTORUSU_CODIGO.value:=DM_BIBLIOTECA.IBT_USUARIOUSU_COD

IGO.value;

 

Postagem:

 

DM_BIBLIOTECA.IBT_ACERVO_AUTOR.Post;

 

Atualização:

 

No Evento AfterPost da tabela em questão 'IBT_ACERVO_AUTOR'

IBT_ACERVO_AUTOR.Refresh;

IBT_ACERVO_AUTOR.Last;

 

Deletar:

 

var buttonSelected : integer;

begin

buttonSelected:=MessageDlg('Deseja apagar esse registro',mtConfirmation,[mbYes,mbCancel],0);

If (buttonSelected = mrYes)then

DM_BIBLIOTECA.IBT_ACERVO_AUTOR.Delete

 

Espero que seja o que você pediu.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poste o código completo da procedure onde você faz a inserção, da rotina que faz a alteração e da rotina que você usa para deletar os posts... para poder ver a sequência de comandos que está montando do início ao fim... só os trechos isolados não servem pra visualizar.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem pra mim naum esquecer nada ta tudo ai.

Os botões de deletar, postar e inserir eu vo destacar...

 

unit UNT_ACERVOS;

 

interface

 

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ComCtrls, ExtCtrls, StdCtrls, Mask, DBCtrls, Buttons, ImgList;

 

type

TFRM_ACERVOS = class(TForm)

PC_ACERVOS: TPageControl;

TS_ACERVO_AUTOR: TTabSheet;

TS_ACERVO_TOMBO: TTabSheet;

PNL_ACERVO_AUTOR: TPanel;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

DBE_DTCAD_AUTOR: TDBEdit;

Label5: TLabel;

DBE_PHA_AUTOR: TDBEdit;

Label6: TLabel;

DBE_CODUSU_AUTOR: TDBEdit;

DBLCBX_ACERVO_AUTOR: TDBLookupComboBox;

DBE_CODIGIACERVO_AUTOR: TDBEdit;

PNL_ACERVO_TOMBO: TPanel;

DBLCBX_STATUS: TDBLookupComboBox;

Label8: TLabel;

DBE_TOMBO: TDBEdit;

Label11: TLabel;

DBE_ACERVO_TOMBO: TDBEdit;

Label10: TLabel;

Label4: TLabel;

DBE_USU_CODIGO_TOMBO: TDBEdit;

DBE_DTCAD_TOMBO: TDBEdit;

Label7: TLabel;

DBRadioGroup1: TDBRadioGroup;

SBTN_FIRST_TOMBO: TSpeedButton;

SBTN_PRIOR_TOMBO: TSpeedButton;

SBTN_NEXT_TOMBO: TSpeedButton;

SBTN_LAST_TOMBO: TSpeedButton;

SBTN_ADD_TOMBO: TSpeedButton;

SBTN_DELETE_TOMBO: TSpeedButton;

SBTN_CANCEL_TOMBO: TSpeedButton;

SBTN_CONFIRM_TOMBO: TSpeedButton;

SBTN_REFRESH_TOMBO: TSpeedButton;

SBTN_EDIT_TOMBO: TSpeedButton;

SBTN_FIRST_AUTOR: TSpeedButton;

SBTN_PRIOR_AUTOR: TSpeedButton;

SBTN_NEXT_AUTOR: TSpeedButton;

SBTN_LAST_AUTOR: TSpeedButton;

SBTN_EDIT_AUTOR: TSpeedButton;

SBTN_DELETE_AUTOR: TSpeedButton;

SBTN_ADD_AUTOR: TSpeedButton;

SBTN_REFRESH_AUTOR: TSpeedButton;

SBTN_CONFIRM_AUTOR: TSpeedButton;

SBTN_CANCEL_AUTOR: TSpeedButton;

ImageList1: TImageList;

procedure SBTN_FIRST_TOMBOClick(Sender: TObject);

procedure SBTN_PRIOR_TOMBOClick(Sender: TObject);

procedure SBTN_NEXT_TOMBOClick(Sender: TObject);

procedure SBTN_LAST_TOMBOClick(Sender: TObject);

procedure SBTN_ADD_TOMBOClick(Sender: TObject);

procedure SBTN_DELETE_TOMBOClick(Sender: TObject);

procedure SBTN_EDIT_TOMBOClick(Sender: TObject);

procedure SBTN_REFRESH_TOMBOClick(Sender: TObject);

procedure SBTN_CONFIRM_TOMBOClick(Sender: TObject);

procedure SBTN_CANCEL_TOMBOClick(Sender: TObject);

procedure SBTN_FIRST_AUTORClick(Sender: TObject);

procedure SBTN_PRIOR_AUTORClick(Sender: TObject);

procedure SBTN_NEXT_AUTORClick(Sender: TObject);

procedure SBTN_LAST_AUTORClick(Sender: TObject);

procedure SBTN_ADD_AUTORClick(Sender: TObject);

procedure SBTN_DELETE_AUTORClick(Sender: TObject);

procedure SBTN_EDIT_AUTORClick(Sender: TObject);

procedure SBTN_REFRESH_AUTORClick(Sender: TObject);

procedure SBTN_CONFIRM_AUTORClick(Sender: TObject);

procedure SBTN_CANCEL_AUTORClick(Sender: TObject);

procedure DBE_PHA_AUTORClick(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

 

var

FRM_ACERVOS: TFRM_ACERVOS;

 

implementation

 

uses UNT_DM_BIBLIOTECA, UNT_PHA_CONC, UNT_ACERVO, UNT_AUTOR;

 

{$R *.dfm}

 

 

 

 

procedure TFRM_ACERVOS.SBTN_FIRST_TOMBOClick(Sender: TObject);

begin

SBTN_CONFIRM_TOMBO.Enabled:=false;

SBTN_CANCEL_TOMBO.Enabled:=false;

PNL_ACERVO_TOMBO.Enabled:=false;

SBTN_EDIT_TOMBO.Enabled:=true;

SBTN_ADD_TOMBO.Enabled:=true;

SBTN_DELETE_TOMBO.Enabled:=true;

DM_BIBLIOTECA.IBT_ACERVO_TOMBO.Cancel;

DM_BIBLIOTECA.IBT_ACERVO_TOMBO.First;

end;

 

procedure TFRM_ACERVOS.SBTN_PRIOR_TOMBOClick(Sender: TObject);

begin

SBTN_CONFIRM_TOMBO.Enabled:=false;

SBTN_CANCEL_TOMBO.Enabled:=false;

PNL_ACERVO_TOMBO.Enabled:=false;

SBTN_EDIT_TOMBO.Enabled:=true;

SBTN_ADD_TOMBO.Enabled:=true;

SBTN_DELETE_TOMBO.Enabled:=true;

DM_BIBLIOTECA.IBT_ACERVO_TOMBO.Cancel;

DM_BIBLIOTECA.IBT_ACERVO_TOMBO.Prior;

end;

 

procedure TFRM_ACERVOS.SBTN_NEXT_TOMBOClick(Sender: TObject);

begin

SBTN_CONFIRM_TOMBO.Enabled:=false;

SBTN_CANCEL_TOMBO.Enabled:=false;

PNL_ACERVO_TOMBO.Enabled:=false;

SBTN_EDIT_TOMBO.Enabled:=true;

SBTN_ADD_TOMBO.Enabled:=true;

SBTN_DELETE_TOMBO.Enabled:=true;

DM_BIBLIOTECA.IBT_ACERVO_TOMBO.Cancel;

DM_BIBLIOTECA.IBT_ACERVO_TOMBO.Next;

end;

 

procedure TFRM_ACERVOS.SBTN_LAST_TOMBOClick(Sender: TObject);

begin

SBTN_CONFIRM_TOMBO.Enabled:=false;

SBTN_CANCEL_TOMBO.Enabled:=false;

PNL_ACERVO_TOMBO.Enabled:=false;

SBTN_EDIT_TOMBO.Enabled:=true;

SBTN_ADD_TOMBO.Enabled:=true;

SBTN_DELETE_TOMBO.Enabled:=true;

DM_BIBLIOTECA.IBT_ACERVO_TOMBO.Cancel;

DM_BIBLIOTECA.IBT_ACERVO_TOMBO.Last;

end;

 

procedure TFRM_ACERVOS.SBTN_ADD_TOMBOClick(Sender: TObject);

begin

DM_BIBLIOTECA.IBT_ACERVO_TOMBO.Insert;

DM_BIBLIOTECA.IBT_ACERVO_TOMBOATO_DTCAD.Value:= Date ;

SBTN_CONFIRM_TOMBO.Enabled:= true;

SBTN_CANCEL_TOMBO.Enabled:= true;

PNL_ACERVO_TOMBO.Enabled:=true;

SBTN_EDIT_TOMBO.Enabled:=false;

SBTN_ADD_TOMBO.Enabled:=false;

SBTN_DELETE_TOMBO.Enabled:=false;

DBE_TOMBO.SetFocus;

DM_BIBLIOTECA.IBT_ACERVO_TOMBOUSU_CODIGO.value:=DM_BIBLIOTECA.IBT_USUARIOUSU_COD

IGO.value;

end;

 

procedure TFRM_ACERVOS.SBTN_DELETE_TOMBOClick(Sender: TObject);

var buttonSelected : integer;

begin

buttonSelected:=MessageDlg('Deseja apagar esse registro',mtConfirmation,[mbYes,mbCancel],0);

If (buttonSelected = mrYes)then

DM_BIBLIOTECA.IBT_ACERVO_TOMBO.Delete

end;

 

procedure TFRM_ACERVOS.SBTN_EDIT_TOMBOClick(Sender: TObject);

begin

with (DM_BIBLIOTECA)do

begin

IBT_ACERVO_TOMBO.Edit;

IBT_ACERVO_TOMBOATO_DTALT.Value:=date;

SBTN_CONFIRM_TOMBO.Enabled:= true;

SBTN_CANCEL_TOMBO.Enabled:= true;

PNL_ACERVO_TOMBO.Enabled:=true;

SBTN_EDIT_TOMBO.Enabled:=false;

SBTN_ADD_TOMBO.Enabled:=false;

SBTN_DELETE_TOMBO.Enabled:=false;

DBE_TOMBO.SetFocus;

end;

end;

 

procedure TFRM_ACERVOS.SBTN_REFRESH_TOMBOClick(Sender: TObject);

begin

DM_BIBLIOTECA.IBT_ACERVO_TOMBO.Refresh;

end;

procedure TFRM_ACERVOS.SBTN_CONFIRM_TOMBOClick(Sender: TObject);

begin

DM_BIBLIOTECA.IBT_ACERVO_TOMBO.Post;

SBTN_CONFIRM_TOMBO.Enabled:=false;

SBTN_CANCEL_TOMBO.Enabled:=false;

PNL_ACERVO_TOMBO.Enabled:=false;

SBTN_EDIT_TOMBO.Enabled:=true;

SBTN_ADD_TOMBO.Enabled:=true;

SBTN_DELETE_TOMBO.Enabled:=true;

end;

procedure TFRM_ACERVOS.SBTN_CANCEL_TOMBOClick(Sender: TObject);

begin

DM_BIBLIOTECA.IBT_ACERVO_TOMBO.Cancel;

SBTN_CONFIRM_TOMBO.Enabled:=false;

SBTN_CANCEL_TOMBO.Enabled:=false;

PNL_ACERVO_TOMBO.Enabled:=false;

SBTN_EDIT_TOMBO.Enabled:=true;

SBTN_ADD_TOMBO.Enabled:=true;

SBTN_DELETE_TOMBO.Enabled:=true;

end;

 

procedure TFRM_ACERVOS.SBTN_FIRST_AUTORClick(Sender: TObject);

begin

SBTN_CONFIRM_AUTOR.Enabled:=false;

SBTN_CANCEL_AUTOR.Enabled:=false;

PNL_ACERVO_AUTOR.Enabled:=false;

SBTN_EDIT_AUTOR.Enabled:=true;

SBTN_ADD_AUTOR.Enabled:=true;

SBTN_DELETE_AUTOR.Enabled:=true;

DM_BIBLIOTECA.IBT_ACERVO_AUTOR.Cancel;

DM_BIBLIOTECA.IBT_ACERVO_AUTOR.First;

end;

 

procedure TFRM_ACERVOS.SBTN_PRIOR_AUTORClick(Sender: TObject);

begin

SBTN_CONFIRM_AUTOR.Enabled:=false;

SBTN_CANCEL_AUTOR.Enabled:=false;

PNL_ACERVO_AUTOR.Enabled:=false;

SBTN_EDIT_AUTOR.Enabled:=true;

SBTN_ADD_AUTOR.Enabled:=true;

SBTN_DELETE_AUTOR.Enabled:=true;

DM_BIBLIOTECA.IBT_ACERVO_AUTOR.Cancel;

DM_BIBLIOTECA.IBT_ACERVO_AUTOR.Prior;

end;

 

procedure TFRM_ACERVOS.SBTN_NEXT_AUTORClick(Sender: TObject);

begin

SBTN_CONFIRM_AUTOR.Enabled:=false;

SBTN_CANCEL_AUTOR.Enabled:=false;

PNL_ACERVO_AUTOR.Enabled:=false;

SBTN_EDIT_AUTOR.Enabled:=true;

SBTN_ADD_AUTOR.Enabled:=true;

SBTN_DELETE_AUTOR.Enabled:=true;

DM_BIBLIOTECA.IBT_ACERVO_AUTOR.Cancel;

DM_BIBLIOTECA.IBT_ACERVO_AUTOR.Next;

end;

 

procedure TFRM_ACERVOS.SBTN_LAST_AUTORClick(Sender: TObject);

begin

SBTN_CONFIRM_AUTOR.Enabled:=false;

SBTN_CANCEL_AUTOR.Enabled:=false;

PNL_ACERVO_AUTOR.Enabled:=false;

SBTN_EDIT_AUTOR.Enabled:=true;

SBTN_ADD_AUTOR.Enabled:=true;

SBTN_DELETE_AUTOR.Enabled:=true;

DM_BIBLIOTECA.IBT_ACERVO_AUTOR.Cancel;

DM_BIBLIOTECA.IBT_ACERVO_AUTOR.Last;

end;

 

procedure TFRM_ACERVOS.SBTN_ADD_AUTORClick(Sender: TObject);

begin

DM_BIBLIOTECA.IBT_ACERVO_AUTOR.Insert;

DM_BIBLIOTECA.IBT_ACERVO_AUTORAAU_DTCAD.Value:= Date ;

SBTN_CONFIRM_AUTOR.Enabled:= true;

SBTN_CANCEL_AUTOR.Enabled:= true;

PNL_ACERVO_AUTOR.Enabled:=true;

SBTN_EDIT_AUTOR.Enabled:=false;

SBTN_ADD_AUTOR.Enabled:=false;

SBTN_DELETE_AUTOR.Enabled:=false;

DBLCBX_ACERVO_AUTOR.SetFocus;

DM_BIBLIOTECA.IBT_ACERVO_AUTORUSU_CODIGO.value:=DM_BIBLIOTECA.IBT_USUARIOUSU_COD

IGO.value;

end;

 

procedure TFRM_ACERVOS.SBTN_DELETE_AUTORClick(Sender: TObject);

var buttonSelected : integer;

begin

buttonSelected:=MessageDlg('Deseja apagar esse registro',mtConfirmation,[mbYes,mbCancel],0);

If (buttonSelected = mrYes)then

DM_BIBLIOTECA.IBT_ACERVO_AUTOR.Delete

end;

 

procedure TFRM_ACERVOS.SBTN_EDIT_AUTORClick(Sender: TObject);

begin

with (DM_BIBLIOTECA)do

begin

IBT_ACERVO_AUTOR.Edit;

IBT_ACERVO_AUTORAAU_DTALT.Value:=date;

SBTN_CONFIRM_AUTOR.Enabled:= true;

SBTN_CANCEL_AUTOR.Enabled:= true;

PNL_ACERVO_AUTOR.Enabled:=true;

SBTN_EDIT_AUTOR.Enabled:=false;

SBTN_ADD_AUTOR.Enabled:=false;

SBTN_DELETE_AUTOR.Enabled:=false;

DBLCBX_ACERVO_AUTOR.SetFocus;

end;

end;

 

procedure TFRM_ACERVOS.SBTN_REFRESH_AUTORClick(Sender: TObject);

begin

DM_BIBLIOTECA.IBT_ACERVO_AUTOR.Refresh;

end;

 

procedure TFRM_ACERVOS.SBTN_CONFIRM_AUTORClick(Sender: TObject);

begin

DM_BIBLIOTECA.IBT_ACERVO_AUTOR.Post;

SBTN_CONFIRM_AUTOR.Enabled:=false;

SBTN_CANCEL_AUTOR.Enabled:=false;

PNL_ACERVO_AUTOR.Enabled:=false;

SBTN_EDIT_AUTOR.Enabled:=true;

SBTN_ADD_AUTOR.Enabled:=true;

SBTN_DELETE_AUTOR.Enabled:=true;

end;

 

procedure TFRM_ACERVOS.SBTN_CANCEL_AUTORClick(Sender: TObject);

begin

DM_BIBLIOTECA.IBT_ACERVO_AUTOR.Cancel;

SBTN_CONFIRM_AUTOR.Enabled:=false;

SBTN_CANCEL_AUTOR.Enabled:=false;

PNL_ACERVO_AUTOR.Enabled:=false;

SBTN_EDIT_AUTOR.Enabled:=true;

SBTN_ADD_AUTOR.Enabled:=true;

SBTN_DELETE_AUTOR.Enabled:=true;

end;

 

procedure TFRM_ACERVOS.DBE_PHA_AUTORClick(Sender: TObject);

begin

FRM_PHA_CONC.EDT_PHA_CONC.Text:=FRM_ACERVO.DBE_DESCR.Text;

FRM_PHA_CONC.showmodal;

end;

 

E aqui a Rotina de Atualizar:

 

procedure TDM_BIBLIOTECA.IBT_ACERVO_AUTORAfterPost(DataSet: TDataSet);

 

begin

IBT_ACERVO_AUTOR.Refresh;

IBT_ACERVO_AUTOR.Last;

end;

 

procedure TDM_BIBLIOTECA.IBT_ACERVO_TOMBOAfterPost(DataSet: TDataSet);

begin

IBT_ACERVO_TOMBO.Refresh;

IBT_ACERVO_TOMBO.Last;

end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

No Evento AfterPost da tabela em questão 'IBT_ACERVO_AUTOR'

IBT_ACERVO_AUTOR.Refresh;

IBT_ACERVO_AUTOR.Last;

tente colocar IBT_ACERVO_AUTOR.ApplyUpdates antes do Refresh...

 

ou

 

Postagem:

 

DM_BIBLIOTECA.IBT_ACERVO_AUTOR.Post;

pode colocar após o post...

 

 

abraços !!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá,

 

confirme se as propriedades em seu IBDatabase e IBTransaction estão apontando um para o outro, tipo assim:

 

no IBDatabase: DefaultTransaction = IBTransaction

e no IBTransaction: DefaultDatabase = IBDatabase

 

logo após o POST, coloque a linha para da um COMMIT no transaction:

Transaction.CommitRetaining;

 

coloque de acordo com o nome dos seus componentes e faça um teste, n esqueça de postar o resultado, hehe

 

espero ter ajudado...

 

[],

Sandro Ramos

Compartilhar este post


Link para o post
Compartilhar em outros sites

VLW mesmo acabei de conferi.

Usei o comando :

 

<nome_tabela>.ApplyUpdates;

<nome_tabela>.Transiction.CommitRetaining;

 

Mas as Query's tipo não atualizam.

Eu cadastro, e quando vou fazer a consulta / relatório não aparece os

registros novos.

 

obs: os forms estão separados , ou seja pras tabelas tem um

IBDatabase e IBTransiction e pros query outro.

 

Vlw se puder me ajuadar mais uma vez obrigado :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando você grava você usa inserts via SQL e tables para mostrar o resultado que você carrega quando abre o programa, é isso? Se for, talvez o único modo de você pegar os dados gravados pelas querys seja fechando e abrindo suas tables.

 

[]'s

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.