Fórum commit fecha as tabelas ... porque ? #170836
22/07/2003
0
if DM_monitora.TabcobCOD_FIL.IsNull then
begin
showmessage(´Campo Filial é Obrigatório!´);
DBLookupComboxfilial.SetFocus;
abort;
end;
with dbeditcodigo do
begin
Color:=clwindow;
Enabled:=true;
end;
with dbeditdata do
begin
Color:=clwindow;
Enabled:=true;
end;
btbitexcluir.enabled:=true;
btbiteditar.enabled:=true;
btbitinserir.enabled:=true;
btbitsalvar.enabled:=false;
btbitcancelar.enabled:=false;
dm_monitora.tabcob.Post;
dm_monitora.IBTransaction.Commit;
except
dm_monitora.IBTransaction.Rollback;
erro1;
end;
e mesmo que eu faça assim tambem
try
dm_monitora.tabcob.post;
dm_monitora.ibtransaction.commit;
except
dm_monitora.ibtransaction.rollback;
end;
Midas
Curtir tópico
+ 0Posts
22/07/2003
Marcelo.c
http://200.196.51.150/forum/viewtopic.php?t=8336&highlight=ibdataset
Gostei + 0
23/07/2003
Werlon Goulart
Realmente se nao forem configurados adequadamente, eles apresentam este problema.
Mas é uma pequena configuração q ta faltando...
Tente ai...
Coloque um IBQuery e para cada IBQuery q desejar editar os dados coloque tb um IBTransaction e clique 2 vezes no IBTransaction e sete os parametros para Read Commited, isso ira fazer com q os registros sejam visiveis nas outras estacoes sem q seja necessario fechar o seu DataBase q a IBQuery esta ligada.
Um Abraço
Werlon Goulart
Gostei + 0
23/07/2003
Midas
haveria uma maneira de gravar os dados ao final das transacoes sem que ele feche minhas tabelas ?
Gostei + 0
23/07/2003
Fer
http://www.forumweb.com.br/index.php?showtopic=2659
Gostei + 0
23/07/2003
Fava
http://www.firebase.com.br/cgi-bin/firebase.cgi/artigo?ID=156
Gostei + 0
23/07/2003
Midas
Gostei + 0
24/07/2003
Werlon Goulart
Vc ira precisar de :
1 IBDataBase
1 IBQuery
1 IBUpdateSQL
1 IBTransaction
1 DataSource
1 DBNavigator
1-Configure o IBDatabase para acessar seu Banco de Dados;
2-Configure no IBQuery a propriedade ´Database´ com o nome do
IBDatabase q vc colocou;
3-Coloque no IBQuery a propriedade ´Transaction´ com o nome do
IBTransaction q vc colocou;
4-Coloque no IBQuery a propriedade ´UpdateObject´ com o nome do
IBUpdateSQL q vc colocou;
5-De dois cliques no IBUpdateSQL e escolha a tabela q vc ira usar neste
IBQuery, depois clique em ´Get Table Fieds´ depois em ´Dataset
Defaults´, e depois em ´Select Primary Keys´ e por ultimo
em ´Generate SQL´, e feche com o OK;
6-NO IBTransaction na propriedade ´DefaultAction´
coloque ´TACommitRetaining´ para vc poder gravar e continuar a
vendo seus dados na tela, e na propriedade ´DefaultDatabase´
coloque o nome do IBDataBase q vc colocou no Form;
7-Clique duas vezes no IBTransaction e escolha ´Read Commited´;
8-No DataSource na propriedade ´DataSet´ coloque o nome do IBQuery q
vc adicionou no Form;
9-No DBNavigator e na propriedade ´DataSource´ coloque o nome do
IBQuery;
10-No evento ´AfterPost´ do IBQuery coloque :
IBTransaction1.CommitRetaining;
Pronto agora é so testar abrindo DUAS VEZES o programa e alterando em um deles os dados e gravando, depois usando o botao ´Refresh´ na outro programa pra ver se no registro irao aparecer os dados alterados.
Um Abraco
Werlon Goulart
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)