Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Conexao com Banco de Dados - Adicionando novo registro


pimpocvl007

Pergunta

Boa noite

Preciso da opiniao de voces.

Tenho uma aplicacao desenvolvida em delphi: 10, banco: firebird 2.5 ligado atraves do componente: TIBDatabase (aba interbase), toda vez que a aplicacao e aberta, (on show) eu ativo o banco (TIBDatabase), ativo a transacao (TIBTransaction), quando o usuario acessa o Form referente ao cadastro de "clientes" eu ativo o TIBDataset, quando o usuario salva um novo registro um sql via TIBQUERY verifica o ultimo codigo de cliente cadastrado (max) soma mais um e gera um novo codigo para o cliente e o registro e salvo com sucesso, ocorre que...

...o usuario X acessa a aplicacao e vai na opcao (form) para criar um novo CLIENTE, o usuario Y tambem acessa ao mesmo tempo e tambem vai nesta opcao para criar outro cliente, o usuario X salva o registro e gera um novo codigo para este cliente, mas quando o usuario Y vai salvar o seu registro ele não recebeu a atualizacao que o usuario X fez e da erro.

Estou pensando em em desativar o banco quando o usuario for salvar um novo registro, tipo, desativo, ativo (ele recebe os dados atualizados) e salvo. Ai pergunto, este seria o procedimento correto para resolver este impasse?

Obrigado

Olimpio

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0
Boa noite

Preciso da opiniao de voces.

Tenho uma aplicacao desenvolvida em delphi: 10, banco: firebird 2.5 ligado atraves do componente: TIBDatabase (aba interbase), toda vez que a aplicacao e aberta, (on show) eu ativo o banco (TIBDatabase), ativo a transacao (TIBTransaction), quando o usuario acessa o Form referente ao cadastro de "clientes" eu ativo o TIBDataset, quando o usuario salva um novo registro um sql via TIBQUERY verifica o ultimo codigo de cliente cadastrado (max) soma mais um e gera um novo codigo para o cliente e o registro e salvo com sucesso, ocorre que...

...o usuario X acessa a aplicacao e vai na opcao (form) para criar um novo CLIENTE, o usuario Y tambem acessa ao mesmo tempo e tambem vai nesta opcao para criar outro cliente, o usuario X salva o registro e gera um novo codigo para este cliente, mas quando o usuario Y vai salvar o seu registro ele não recebeu a atualizacao que o usuario X fez e da erro.

Estou pensando em em desativar o banco quando o usuario for salvar um novo registro, tipo, desativo, ativo (ele recebe os dados atualizados) e salvo. Ai pergunto, este seria o procedimento correto para resolver este impasse?

Obrigado

Olimpio

Eu utilizo quase assim, mas é no Delphi 7 e Firebird 2.0, mas o que faço e sempre deixar conectado o banco e ai uso a Query para fazer os Ups, Inserts, Selects e ects....

Tive esse problema de inicio, mas é bem facil, no botão novo registro eu também sempre busco o ultimo codigo para informar o registro, mas antes de salvar eu faço ele busca de novo só para garantir que alguém em rede já tenha salvo, se não vai zicar tudo mesmo......

abraços

Link para o comentário
Compartilhar em outros sites

  • 0

esta correto, voce deve usar:

read_committed

rec_version

Jhonas

Ao utilizar a sua dica deu erro: "transaction is actived"

esse erro acontece se voce não iniciar o banco dessa maneira:

//ATUALIZAR OS DADOS PARA A REDE
   if FMenu.IBTransaction1.InTransaction = false then
      begin
         FMenu.IBDatabase1.CloseDataSets;
         FMenu.IBDatabase1.Open;
         FMenu.IBTransaction1.StartTransaction;
      end;

abraço

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...