Apenas Query amp; SQL
Pessoal... 2 dúvidas acredito serem primárias...
Uso D7 + FireBird 1.5.1 + Zeus (5.5.0 dedicado p/ o IB/FB).
Por definição, minha aplicação não necessitará de um ClientDataSet.
Sendo assim, uso somente 3 componentes: Connection / DataSource / Query.
Os camandos são naturais e diretos SQL: Insert/Update/Delete/Select, entre outros, feitos única e exclusivamente pela Query.
Os problemas q tenho são:
- Como controlar a concorrência dos acessos?
eu nãu uso isto: .... .append, ou edit, ou mesmo cancel de um CDSet, muito menos CDSet.ApplyUpdate(0) para gravar, como sabem uso direto insert na Query.
- A 2ª dúvida é com relação ao refresh?
Query.refresh; para mim só dá erro?!
Este modelo q uso para Clinte/Servidor funciona? ...ou tenho, mesmo, que reverter meus conceitos tendo que aplicar o reconhecimento dos eventos do DataSet e dispositivos/componentes: RollBack, ClientDataSet, TTransactionDesc... entre outras coisa para funcionar?
Agradecido
Uso D7 + FireBird 1.5.1 + Zeus (5.5.0 dedicado p/ o IB/FB).
Por definição, minha aplicação não necessitará de um ClientDataSet.
Sendo assim, uso somente 3 componentes: Connection / DataSource / Query.
Os camandos são naturais e diretos SQL: Insert/Update/Delete/Select, entre outros, feitos única e exclusivamente pela Query.
Os problemas q tenho são:
- Como controlar a concorrência dos acessos?
eu nãu uso isto: .... .append, ou edit, ou mesmo cancel de um CDSet, muito menos CDSet.ApplyUpdate(0) para gravar, como sabem uso direto insert na Query.
- A 2ª dúvida é com relação ao refresh?
Query.refresh; para mim só dá erro?!
Este modelo q uso para Clinte/Servidor funciona? ...ou tenho, mesmo, que reverter meus conceitos tendo que aplicar o reconhecimento dos eventos do DataSet e dispositivos/componentes: RollBack, ClientDataSet, TTransactionDesc... entre outras coisa para funcionar?
Agradecido
Nerdex
Curtidas 0
Respostas
Vinicius2k
08/10/2004
Colega,
Não entendi sua dúvida...
Dos métodos citados, o único que promove algum tipo de controle sobre modificações em registros editados simultaneamente é o ApplyUpdates do CDS. Os demais métodos trabalham com dados em cache e são descartadas quaisquer operações se ApplyUpdates não for invocado.
Controles de isolamento, concorrencia, travamentos, etc são feitos através de transações, que são a essência de qualquer aplicação C/S e de instruções SQL.
Se a ZeosDBO permitir controle de transações com o SGBD, nenhum componente adicional é estritamente necessário.
Isto já é um problema do componente ou do contexto de outros métodos envolvidos, e, mesmo sem conhecê-la (a Zeos), se vc postar a mensagem de erro, pode ajudar a identificar o problema.
Funciona. Por que não funcionaria ? Vc pode construir uma aplicação inteira sem usar os métodos de TDataSet e sem um controle data-aware sequer...
Aqui vc está ´misturando´ várias coisas...
[b:88252c75f0]Commit e Rollback [/b:88252c75f0]não são de TDataSets, são das transações e sem elas nada é efetivado no Banco de Dados. Mesmo que vc não as controle explicitamente, já que algums componentes fazem de forma automática, caso vc não lhes diga: ´estou no controle´, elas sempre existem.
[b:88252c75f0]TTransactionDesc[/b:88252c75f0] é a definição de escopo de uma transação para o dbExpress e não tem nenhuma relação com a Midas (Provider e CDS) ou com a Zeos , que é o seu caso.
T+
- Como controlar a concorrência dos acessos?
eu nãu uso isto: .... .append, ou edit, ou mesmo cancel de um CDSet, muito menos CDSet.ApplyUpdate(0) para gravar, como sabem uso direto insert na Query.
Não entendi sua dúvida...
Dos métodos citados, o único que promove algum tipo de controle sobre modificações em registros editados simultaneamente é o ApplyUpdates do CDS. Os demais métodos trabalham com dados em cache e são descartadas quaisquer operações se ApplyUpdates não for invocado.
Controles de isolamento, concorrencia, travamentos, etc são feitos através de transações, que são a essência de qualquer aplicação C/S e de instruções SQL.
Se a ZeosDBO permitir controle de transações com o SGBD, nenhum componente adicional é estritamente necessário.
- A 2ª dúvida é com relação ao refresh?
Query.refresh; para mim só dá erro?!
Isto já é um problema do componente ou do contexto de outros métodos envolvidos, e, mesmo sem conhecê-la (a Zeos), se vc postar a mensagem de erro, pode ajudar a identificar o problema.
Este modelo q uso para Clinte/Servidor funciona? ...ou tenho, mesmo, que reverter meus conceitos tendo que aplicar o reconhecimento dos eventos do DataSet e dispositivos/componentes: RollBack, ClientDataSet, TTransactionDesc... entre outras coisa para funcionar?
Funciona. Por que não funcionaria ? Vc pode construir uma aplicação inteira sem usar os métodos de TDataSet e sem um controle data-aware sequer...
Aqui vc está ´misturando´ várias coisas...
[b:88252c75f0]Commit e Rollback [/b:88252c75f0]não são de TDataSets, são das transações e sem elas nada é efetivado no Banco de Dados. Mesmo que vc não as controle explicitamente, já que algums componentes fazem de forma automática, caso vc não lhes diga: ´estou no controle´, elas sempre existem.
[b:88252c75f0]TTransactionDesc[/b:88252c75f0] é a definição de escopo de uma transação para o dbExpress e não tem nenhuma relação com a Midas (Provider e CDS) ou com a Zeos , que é o seu caso.
T+
GOSTEI 0
Nerdex
08/10/2004
Ops... uso tmb o Transaction
Deve estar aí a luz da coisa...
Deve estar aí a luz da coisa...
GOSTEI 0