Iniciar duas transações
20/08/2008
0
Tem como iniciar uma transação, colocar ela em espera e iniciar outra transação? Tenho um sistema de Locadora de Filmes, o Cliente pediu para fazer uma alteração na hora de alugar os filmes, quando iniciamos uma retirada, para sair da tela temos que finalizar ou cancelar a locação. O cliente alega que vai perder tempo, pois haverá momentos em que ele já digitou vários filmes para uma locação então o cliente resolve escolher mais filme, ele vai ter que cancelar aquela locação para atender os demais clientes da fila, enquanto aquele termina de escolher mais filmes, ai tem que digitar tudo novamente. Preciso fazer um sistema que abra a tela de Locação e que deixe a locacao aguardando em aberto, para poder iniciarmos outra locação finaliza-la e abrir a que estava em espera, como fazer isso?
Fernandoaco
Posts
20/08/2008
Paulo
20/08/2008
Fernandoaco
Minha tela é showmodal, não editamos sempre inserimos, o que eu preciso fazer é: estou fazendo uma locacao de filmes ja incluir varios filmes o cliente resolve ir procurar outro filme, ai preciso colocar esta locacao que não gravei ainda em espera, pra iniciar outra locacao para outro cliente. O problema é que não a minima ideia ainda de como fazer isso.
22/08/2008
Emerson Nascimento
senão você não consegue abrir outra.
então você abre a tela e modo ´show´ e abre a transação somente no momento da gravação (da gravação, e não da inserção de registros).
algo assim:
abre a tela em modo ´show´
permite a inserção de registros
ao gravar, abre a transação, manda gravar e fecha a transação.
desse modo você pode abrir quantas telas de locação quiser e nem precisa abrir várias transações.
22/08/2008
Fernandoaco
Minha ideia é mais menos assim? no forme showmodal, teria 2 botoes um para colocar a locacao em espera, e outro para e busca as locacoes que estao em modo de espera, minha duvida, posso grava no clientedataset que uso sem da o comit, ou jogar os dados para outro clientedataset?. eis minha duvida.
22/08/2008
Emerson Nascimento
eu sugiro a você permitir várias telas abertas simultaneamente, assim você não precisa se preocupar com transações. cada instância da tela terá seu próprio clientdataset com seus dados protegidos das outras instâncias.
depois basta retornar para a tela desejada e descarregar as informações para o banco de dados (applyupdates).
é assim que eu sempre faço e acho que é a melhor forma.
no meu caso, vários pedidos podem ser abertos simultaneamente, por [i:d2750b393f]n[/i:d2750b393f] motivos. daí, basta alternar entre os pedidos abertos e gravá-los conforme o necessário.
22/08/2008
Fernandoaco
23/08/2008
Brunodsr
Eh bem facil. procure pela classe TSessions.
Cada sessao possui uma conexao independente com o seu banco de dados. A garantia de integridade é maior.
Espero ter ajudado
23/08/2008
Fernandoaco
Da pra voce me enviar um exemplo ?
Obrigado pela atenção.
Clique aqui para fazer login e interagir na Comunidade :)