Fórum Problema ao Editar Registro #215218
18/02/2004
0
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
Curtir tópico
+ 0Posts
18/02/2004
Pedro Bugim
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,
Gostei + 0
18/02/2004
Adria
Depois de post utilizo IBtransaction.commitRetaining
adria
Gostei + 0
18/02/2004
Pedro Bugim
se quiser algumas dicas de como utilizá-las, pode perguntar que eu te passo os macetes, ok?!
Abraços,
Gostei + 0
18/02/2004
Adria
Adri
Gostei + 0
18/02/2004
Pedro Bugim
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!
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)