salvar tabela ctrl alt del

23/11/2005

0

Pessoal tenho o seguinte

procedure TFrmMenu.TSAlVARClick(Sender: TObject);
begin
TblEmpresa.Open;
TblEmpresa.edit;
TblEmpresa.post;
TblEmpresa.Close;
tblempresa.open;
end;

Sempre q faço alguma inclusão na tabela e clico no botão ele salva os daos tudo ok, continuo colocando dados na tabela e clico ele salva direitinho, mas se o sistema for desligado incorretamente (falta de energia, ctrl+alt+del, etc) com o sistema aberto ele não salva, quando retorno a tabela os dados q coloquei somem e perdo tudo, bem, e se saio do sistema normalmente ele salva sem problema, gostaria de saber como sanar este problema.

Abraços


Responder

Posts

23/11/2005

Edilcimar

qual o bd?


Responder

24/11/2005

Eva

O BD eh Paradox!!!


Responder

24/11/2005

Emerson Nascimento

coloque essa linha no evento AfterPost da sua Table:
dbiSaveChanges(TTable(Dataset).Handle);


obs.: é necessário ter a unit BDE na sua cláusula uses.


Responder

24/11/2005

Edilcimar

se faltar luz entre o tempo de escrita do bd e a gravação não tem jeito a não ser um nobreak, porém depois que você fecha o bd ele deveria gravar, porém algumas vezes os dados ainda ficam no cache do windows e só são gravados posteriormente, então a solução é forçar a escrita, existe tópico sobre isto aqui


Responder

24/11/2005

Eva

Obrigado a todos, não tenho muito experiencia no delphi, estou apenas começando e pederia por gentilesa ao Emerson ou outra pessoa que fosse mais especifico.


Responder

24/11/2005

Emerson Nascimento

certo...
a função dbiSaveChanges() força o descarregamento imediato dos dados no HD. coloque a chamada à essa função no evento AfterPost do seu componente TTable: clique no componente TTable e vá no ObjetcInspector (pressione F11).
No object inspector há duas guias: Properties e Events; clique em Events; clique em AfterPost; agora dê um duplo-clique no espaço em branco à direita da palavra AfterPost; escreva [i:8f4c05f8a9][b:8f4c05f8a9]dbiSaveChanges(TTable(Dataset).Handle);[/b:8f4c05f8a9][/i:8f4c05f8a9] no local onde aparecer o cursor.

para adicionar o unit BDE na cláusula uses:
vá para o início do seu código. você verá algo como:
unit Unit1;

interface

uses
  Windows, Messages;


então adicione BDE ao final da linha. assim:
unit Unit1;

interface

uses
  Windows, Messages, BDE;



Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar