Fórum Problema ao Editar Registro #215218

18/02/2004

0

Galera, vejam que coisa louca:

meu sistema é um sistema de controle comum que utiliza IB6.
Ele executa e insere novos registro que uma beleza, mas nao salva as alterações (quando necessário alterar) do primeiro registro inserido após aberto sistema. Se eu desejar alterar este registro devo fechar e abrir o sistema novamente.

Isto já aconteceu com alguém? qual seria solução?

[]´s
Adrian


Adria

Adria

Responder

Posts

18/02/2004

Pedro Bugim

Com meus sistemas, faço o seguinte:
Considere que estamos num formulário de alteração, criado à partir de um formulário principal (Frmprincipal), o qual possui uma IBQuery, um DataSource, uma IbTransaction e um DataBase, devidamente ligados e ligados à tabela em questão.
No evento ´OnClick´ do botão ´Aterar´ coloque o código:


With Frmprincipal.IBQuery do
Begin
  Close;
  Sql.Clear;
  Sql.Add(´Update table....´);
  FrmPrincipal.IbTransaction.Active:=True;
  FrmPrincipal.IbTransaction.CommitRetainaing;
  ExecSql;
end;
With FrmPrincipal.IBQuery do 
Begin
  Close;
  sql.Clear;
  Sql.Add(´Select * from TABELA´);
  Open;
End;
Close;


É necessário dar um commitRetaining na IBTransaction e um execsql para a alteração ser devidamente armazenada. Logo após, antes de fechar o form, deve-se fazer um select novamente na tabela, para que as modificações sejam atualizadas no formulário aonde os dados são expostos!
Espero ter ajudado!
Se não funcionar, manda o erro que apareceu, ok?!
Abraços,


Responder

Gostei + 0

18/02/2004

Adria

Eu nao estou utilizando IBQuery, somente IBTable e estou salvando pelo método post, inclusive as alterações... há problema nisto?
Depois de post utilizo IBtransaction.commitRetaining

adria


Responder

Gostei + 0

18/02/2004

Pedro Bugim

Putz! IBTable e Post são a maior furada! Claro que é beeeem mais simples de se utilizar, mas não são muito confiáveis... procure utilizar querys, pois são mais garantidas!
se quiser algumas dicas de como utilizá-las, pode perguntar que eu te passo os macetes, ok?!
Abraços,


Responder

Gostei + 0

18/02/2004

Adria

Se puderes me passar dicas de query ficarei muito grata.

Adri


Responder

Gostei + 0

18/02/2004

Pedro Bugim

Adria,
Primeiramente, a grande vantagem de utilizar querys, é poder manipular código sql, ou seja, com uma mesma query, pode-se fazer distintos selects, alterações, exclusões e inclusões.
Deve-se inicialmente incluir no projeto, uma IBQuery, um DataSourse, um IBDataBase e um IBTransaction.
No IBTransaction, coloca-se a IBDatabase na propriedade ´Default DataBase´. No DataSourse, coloca-se a IBQuery no ´Dataset´. Já na IBDataBase, coloque:
- DataBaseName: path onde se encontra seu bd
- Default Transaction: IBTransaction1

Na IBQuery, coloque:
- DataBase: IBDataBase1
- Login prompt: false
- Params: Username=NOME_DO_USUÁRIO
password=SENHA_DO_USUÁRIO
(osb. Normalmente, como default, utiliza-se sysdba e masterkey respectivamente.)
- Sql: Aqui, vc coloca um select simples em cima da tabela que irá trabalhar;

Aí, quando for fazer alguma manipulação dos dados, basta colocar o seguinte código:

With IBQuery1 do
Begin
Close; //fecha a query
sql.Clear; // limpa o código sql que estiver na query
Sql.Add(´.....´); //Adiciona o código desejado
***
end;

No lugar de *** coloca-se:
- Open; //quando o sql colocadio for um select
- IBTransaction.Active:=true;
IBTransaction.CommitRetaining;
ExecSql; //qndo o sql for para exclusão, inserção ou alteração

Ufa! Ficou gigantesco e ainda falta alguma coisa... Infelizmente tá na minha hora de ir embora do trabalho (ainda bem!). Mas pode deixar que amanhã eu termino, ok?!
Aliás, se quiser me passar teu mail, posso te enviar isso bem melhor!
De início parece bem complicado, mas no fundo é pior! caracas! Brincadeira! É bem simples e muito mais funcional que tables e post.

Espero ter ajudado!


Responder

Gostei + 0

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

Aceitar