Tratando o prepare, e as transasões???
Pessoal acabando de ler um artigo (10 Passos para fazer o Interbase ´voar´) indicado pelo nosso amigo A. Farias, descobri que nunca utilizei prepare IbDataSet e IbQuery,
uso assim:
dmdados.IbDsTalhao.Active := false;
dmdados.IbDsTalhao.SelectSQL.Text := ´SELECT * FROM VTALHAO WHERE COD_FAZ =:COD_FAZ ORDER BY DESCRICAO´;
dmdados.IbDsTalhao.Params[0].Value := COD_FAZ;
dmdados.IbDsTalhao.Active := TRUE;
Bom agora no meu entender devo utilizar assim:
dmdados.IbDsTalhao.Active := false;
dmdados.IbDsTalhao.unprepare;
dmdados.IbDsTalhao.prepare;
dmdados.IbDsTalhao.SelectSQL.Text := ´SELECT * FROM VTALHAO WHERE COD_FAZ =:COD_FAZ ORDER BY DESCRICAO´;
dmdados.IbDsTalhao.Params[0].Value := COD_FAZ;
dmdados.IbDsTalhao.Active := TRUE;
pois com a adição dessas duas linhas vou passar a controlar o prepare manualmente ...
Minha pergunta é a seguinte vcs podem perceber que uso o active para abrir, só que no artigo é indicado o open para tabelas com selects e para INSERT, UPDATE, e DELETE deve ser executadas pelo método ExecSQL, Esses métodos preparam a Query para ser executada caso isso ainda não tenha sido feito anteriormente, mas porem estou tratando o métado prepare manualmente será que posso ficar utilizando o active???
Outra pergunta sempre após efetuar o termino de uma operação pelo usuário efetuo o commit, assim mantendo todos os usuários com as informações atualizadas e após fechar o form em uso dou um active := false no componente IBTransaction pensando assim que finalizei a transação iniciada,, estou certo ?????
uso assim:
dmdados.IbDsTalhao.Active := false;
dmdados.IbDsTalhao.SelectSQL.Text := ´SELECT * FROM VTALHAO WHERE COD_FAZ =:COD_FAZ ORDER BY DESCRICAO´;
dmdados.IbDsTalhao.Params[0].Value := COD_FAZ;
dmdados.IbDsTalhao.Active := TRUE;
Bom agora no meu entender devo utilizar assim:
dmdados.IbDsTalhao.Active := false;
dmdados.IbDsTalhao.unprepare;
dmdados.IbDsTalhao.prepare;
dmdados.IbDsTalhao.SelectSQL.Text := ´SELECT * FROM VTALHAO WHERE COD_FAZ =:COD_FAZ ORDER BY DESCRICAO´;
dmdados.IbDsTalhao.Params[0].Value := COD_FAZ;
dmdados.IbDsTalhao.Active := TRUE;
pois com a adição dessas duas linhas vou passar a controlar o prepare manualmente ...
Minha pergunta é a seguinte vcs podem perceber que uso o active para abrir, só que no artigo é indicado o open para tabelas com selects e para INSERT, UPDATE, e DELETE deve ser executadas pelo método ExecSQL, Esses métodos preparam a Query para ser executada caso isso ainda não tenha sido feito anteriormente, mas porem estou tratando o métado prepare manualmente será que posso ficar utilizando o active???
Outra pergunta sempre após efetuar o termino de uma operação pelo usuário efetuo o commit, assim mantendo todos os usuários com as informações atualizadas e após fechar o form em uso dou um active := false no componente IBTransaction pensando assim que finalizei a transação iniciada,, estou certo ?????
Marcos Fernando
Curtidas 0
Respostas
Afarias
27/02/2004
|pois com a adição dessas duas linhas vou passar a controlar o prepare
|manualmente ...
Não é necessário. O IBX otmiza bem isso automáticamente -- não há nenhuma necessidade de chamar explicitamente Prepare ou Unprepare.
|Outra pergunta sempre após efetuar o termino de uma operação pelo
|usuário efetuo o commit, assim mantendo todos os usuários com as
|informações atualizadas e após fechar o form em uso dou um active :=
|false no componente IBTransaction pensando assim que finalizei a
|transação iniciada,, estou certo ?????
Não é necessário. COMMIT ou ROLLBACK já colocam a propriedade Active do componente IBTransaction para FALSE.
T+
|manualmente ...
Não é necessário. O IBX otmiza bem isso automáticamente -- não há nenhuma necessidade de chamar explicitamente Prepare ou Unprepare.
|Outra pergunta sempre após efetuar o termino de uma operação pelo
|usuário efetuo o commit, assim mantendo todos os usuários com as
|informações atualizadas e após fechar o form em uso dou um active :=
|false no componente IBTransaction pensando assim que finalizei a
|transação iniciada,, estou certo ?????
Não é necessário. COMMIT ou ROLLBACK já colocam a propriedade Active do componente IBTransaction para FALSE.
T+
GOSTEI 0