Fórum Atualização só depois que o form fecha???? #293177

25/08/2005

0

Algumas duvidas:

- Primeiro: Uso Delphi 7 / Interbase 6.0 / Firebird 1.5

- Pessoal, alguem poderia me dizer porque na minha aplicação os dados que ´gravo´ na tabela, na verdade nao sao gravados nele até que eu saia por completo da minha aplicação???? Alguem teria a solução para isso, para que ao apertar no botao salvar os dados fossem realmente gravados fisicamente na tabela....

exemplo de código:

procedure TLivros.Btn_SalvarClick(Sender: TObject);
                          begin
                              if Livros.Edit_Nome.Text = ´´ then
                              ShowMessage(´Campo Nome está vazio, por favor verifique´)
                              else
                                begin
                                    DM.Tbl_Livros.Last;
                                    If Not(DM.Tr_Livros.InTransaction) Then
                                    DM.Tr_livros.StartTransaction;


                                    DM.Tbl_Livros.insert;

                                    DM.Tbl_Livros.FieldByName(´Codigo´).AsInteger   := StrToInt(Edit_Codigo.Text);
                                    DM.Tbl_Livros.FieldByName(´Nome´).AsString      := Edit_Nome.text;
                                    DM.Tbl_Livros.FieldByName(´Tipo´).AsString      := Combo_Tipo.text;
                                    DM.Tbl_Livros.FieldByName(´Quantidade´).AsString:= Edit_Qtdade.text;
                                    DM.Tbl_Livros.FieldByName(´Autor´).AsString     := Combo_autor.text;
                                    DM.Tbl_Livros.FieldByName(´Editora´).AsString   := Combo_Editora.text;
                                    DM.Tbl_Livros.FieldByName(´Sinopse´).AsString   := Memo_Sinopse.Lines.Text;
                                    DM.Tbl_Livros.FieldByName(´Area´).AsString      := Combo_Area.text;
                                    DM.Tbl_Livros.FieldByName(´Exemplar´).AsString  := Edit_Exemplar.text;
                                    DM.Tbl_Livros.FieldByName(´Volume´).AsString    := Edit_Volume.text;
                                    DM.Tbl_Livros.FieldByName(´Local´).AsString     := Edit_LocalEdicao.text;
                                    DM.Tbl_Livros.FieldByName(´Ano_Edicao´).AsString:= Edit_AnoEdicao.text;
                                    DM.Tbl_Livros.FieldByName(´Edicao´).AsString    := Edit_Edicao.text;

                                    DM.Tbl_Livros.post;
                                    DM.Tbl_Livros.ApplyUpdates;


                                    ShowMessage(´Material Cadastrado Com Sucesso.´);
                                    limpa_Edit;
                                    Btn_Salvar.Enabled   := False;
                                    Btn_Editar.Enabled   := FALSE;
                                    Btn_Up.Enabled       := true;
                                    Btn_Down.Enabled     := true;
                                    Edit_Disable;
                                end;
                          end;



- outra duvida. nao consigo editar nenhuma tabela de minha aplicação. ja fiz de um tudo aqui ja postei duvidas no forum mais nao teve jeito... vou postar novamente o código de edição que uso aqui. os componentes do banco de dados sao os da paleta Interbase. a ligação está tudo ok. ja to ficando maluco com esse problema (ele ja se tornou uma novela aqui no meu serviço)... se alguem quiser envio as UNITS pra quem se habilitar a tentar resolver esse meistério da meia noite....
- O problema: Simplesmente nao edita, só isso, mas o código roda até a mensagem de material editado com sucesso...

procedure TLivros.Btn_EditarClick(Sender: TObject);
        begin
            if Livros.Edit_Nome.Text = ´´ then 
            ShowMessage(´Campo Nome está vazio, por favor verifique´) 
            else 
                begin
                    
                    DM.Tbl_Livros.Edit; 

                    //DM.Tbl_LivrosCODIGO.AsInteger   := StrToInt(Edit_Codigo.text);
                    DM.Tbl_LivrosNome.AsString      := Edit_Nome.text; 
                    DM.Tbl_LivrosTipo.AsString      := Combo_Tipo.text; 
                    DM.Tbl_LivrosQuantidade.AsString:= Edit_Qtdade.text; 
                    DM.Tbl_LivrosAutor.AsString     := Combo_autor.text; 
                    DM.Tbl_LivrosEditora.AsString   := Combo_Editora.text; 
                    DM.Tbl_LivrosSinopse.AsString   := Memo_Sinopse.Lines.Text; 
                    DM.Tbl_LivrosArea.AsString      := Combo_Area.text; 
                    DM.Tbl_LivrosExemplar.AsString  := Edit_Exemplar.text; 
                    DM.Tbl_LivrosVolume.AsString    := Edit_Volume.text; 
                    DM.Tbl_LivrosLocal.AsString     := Edit_LocalEdicao.text; 
                    DM.Tbl_LivrosAno_Edicao.AsString:= Edit_AnoEdicao.text; 
                    DM.Tbl_LivrosEdicao.AsString    := Edit_Edicao.text; 

                    DM.Tbl_Livros.Post;
                    DM.Tbl_Livros.ApplyUpdates;

                    ShowMessage(´Material Editado Com Sucesso.´);
                    limpa_Edit; 
                    Btn_Salvar.Enabled   := False; 
                    Btn_Editar.Enabled   := FALSE; 
                    Btn_Up.Enabled       := true; 
                    Btn_Down.Enabled     := true; 
                    Edit_Disable; 
                end; 
        end;



Tabela
--------
CREATE TABLE "LIVROS"
(
  "CODIGO"INTEGER NOT NULL,
  "NOME"VARCHAR(100) NOT NULL,
  "QUANTIDADE"VARCHAR(50),
  "TIPO"VARCHAR(50),
  "AUTOR"VARCHAR(100),
  "SINOPSE"VARCHAR(1000),
  "EDITORA"VARCHAR(50),
  "EXEMPLAR"VARCHAR(50),
  "VOLUME"VARCHAR(50),
  "EDICAO"VARCHAR(50),
  "ANO_EDICAO"VARCHAR(50),
  "LOCAL"VARCHAR(50),
  "AREA"VARCHAR(50),
  "STATUS"VARCHAR(50),
  "RESERVA"VARCHAR(50),
CONSTRAINT "PK_LIVROS" PRIMARY KEY ("CODIGO")
);



Mahdak

Mahdak

Responder

Posts

25/08/2005

Edineidaniel

Mahdak,

Você não especificou os componentes de acesso ao banco de dados, que você esta usando...

Mas acredito que seja da paleta InterBase.... Esses tm um sério problema na atualização dos dados em tempo de execussão...

Mas tm jeito de resolve....

1º - Você deve dar um Commit na transação...
2º - Atualizar a conexão com o banco....
3º - Atualizar a tabela ou Query...

Issoo!!!!

t+
Edinei


Responder

Gostei + 0

25/08/2005

Mahdak

Mahdak, Você não especificou os componentes de acesso ao banco de dados, que você esta usando... Mas acredito que seja da paleta InterBase.... Esses tm um sério problema na atualização dos dados em tempo de execussão... Mas tm jeito de resolve.... 1º - Você deve dar um Commit na transação... 2º - Atualizar a conexão com o banco.... 3º - Atualizar a tabela ou Query... Issoo!!!! t+ Edinei



isso mesmo edinei, sao os componentes da paleta interbase... vc poderia dar um exemplo aqui pra mim de código de como adotar esses tres passos?, pq se eh omo estou pensando ja fiz e nao deu certo...

Abraços!


Responder

Gostei + 0

26/08/2005

Mahdak

sobe, pessoal é importante.... :cry:


Responder

Gostei + 0

26/08/2005

Gandalf.nho

[b:57d6d01dae][color=red:57d6d01dae]Bloqueado por Infração às Regras de Conduta :[/color:57d6d01dae][/b:57d6d01dae]

Duplicidade.
[url]http://forum.clubedelphi.net/viewtopic.php?p=215114[/url]

Para maiores esclarecimentos pode mandar-me uma [url=http://forum.clubedelphi.net/privmsg.php?mode=post&u=8378]Mensagem Particular[/url].


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar