GARANTIR DESCONTO

Fórum Registro não é gravado #341071

28/04/2007

0

Olá,

Estou com um problema. Quando incluo registros no programa e depois minimizo ele, se eu desligar o computador sem fechar o programa antes, qdo abro ele novamente os registros que tinham sido incluidos antes do programa ser minimizado não aparecem. Como fazer para evitar isso?
Eu uso D7/FIREBIRD 1.5/IBX. Obrigado.

Luiz


L_carlos

L_carlos

Responder

Posts

28/04/2007

Paullsoftware

não creio que o fato de você está ´Minimizando´ o seu programa tenha algo haver com o não salvamento dos dados no banco de dados, creio que está relacionado a maneira como você está ´Gravando´ esses dados, quando você clica no botão ´Salvar´ para confirmar a ´Inclusão´ dos dados que código você está usando???

sempre post o código usado, assim, fica mais fácil de ajudar nos esclarecimentos... 8)


Responder

Gostei + 0

28/04/2007

L_carlos

Tem a ver com o programa estar minimizado e não ser fechado. Porque quando eu fecho o programa clicando no botão fechar e desligo o miccro qdo abro novamente os registros foram incluidos normalmente (no botão fechar eu desconecto as query e o ibdatabase).

O Codigo para gravar é esse:

with FDADOS.QryINSAgenda do
begin

ParamByName(´dat_dia´).asDate := dtdata.date;
ParamByName(´hor_hora´).asTime := strtotime(EDHORA.Text);
ParamByName(´des_evento´).asstring := edevento.text;
ParamByName(´des_detalhe´).asstring := memodetalhe.text;
ExecSql;
FDADOS.QryAgenda.Active :=FALSE;
FDADOS.QryAgenda.Active :=TRUE;

Onde FDADOS é o Data Module.

Luiz


Responder

Gostei + 0

29/04/2007

Marco Salles

talves interceptar a mensagem do Windows possa resolver o seu problema

na seccção private do form escreva

private
   procedure WMQueryEndSession (var Msg : TWMQueryEndSession); message WM_QueryEndSession;


procedure TForm1.WMQueryEndSession (var Msg : TWMQueryEndSession); 
begin 
if TestarSeFormmularioEstaMinimizado
  begin
     exceutarEventoBotaoSalvar Ou ExcutarEventoBotaoSalvar
  end;

Msg.Result := 1; 
end;


ou se preferir :

procedure WMEndSession(var Msg : TWMEndSession); message WM_ENDSESSION; 
Adicionar a procedure à seção implementation de sua unit: 


procedure TForm1.WMEndSession(var Msg : TWMEndSession); 
begin 
if Msg.EndSession = true then 
  if TestarSeFormmularioEstaMinimizado
  begin
     exceutarEventoBotaoSalvar Ou ExcutarEventoBotaoSalvar
  end;
inherited; 
end;


Acho que funfa para o que voce quer


Responder

Gostei + 0

29/04/2007

Paullsoftware

quando eu trabalhava com IBX com os componentes:

IbDataBase
IbTransaction
IbDataSet
e nos eventos
[b:6af753cca6]afterPost e AfterDelete[/b:6af753cca6]
eu sempre coloco o código abaixo...
if Not Transaction.InTransaction then
 Transaction.StartTransaction;
  Try
   if Transaction.InTransaction then
    Transaction.CommitRetaining
     Except
      if Transaction.InTransaction then
       Transaction.RollbackRetaining;
        end;

assim, sempre que executo alguma alteração essas são gravadas diretamente no banco, então mesmo que falte energia logo depois de clicar no botão SALVAR os dados já estaram gravados no banco, pelo menos comigo sempre funcionou... :wink:


Responder

Gostei + 0

29/04/2007

L_carlos

Valeu Paull. Problema resolvido. :D

Luiz


Responder

Gostei + 0

30/04/2007

Marco Salles

Sei não , mas é so uma opinião ..

Abrir transação comitar fechar transação etc , para cad apost que se da no Aplicativo ´pode não ser uma prática boa... Pois pelo que tudo indica ,
estara consomindo muito recurso do servidor alem de prender a conexão e também o cursor . Nun Sistema de Rede , poderemos ter uma perda consideravel na performace..


Responder

Gostei + 0

30/04/2007

Paullsoftware

[quote:7a0e1fc957=´Marco Salles´]Sei não , mas é so uma opinião ..

Abrir transação comitar fechar transação etc , para cad apost que se da no Aplicativo ´pode não ser uma prática boa... Pois pelo que tudo indica ,
estara consomindo muito recurso do servidor alem de prender a conexão e também o cursor . Nun Sistema de Rede , poderemos ter uma perda consideravel na performace..[/quote:7a0e1fc957]

valeu Marcos, eu usava isso quando trabalhava com IBX mais agora migrei pra DBX e não faço mais isso, até pq eu só usava essa torina como forma alternativa quando ocorria problemas do tipo!
mais valeu pelo toque...


Responder

Gostei + 0

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

Aceitar