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

Pegar numero sequencial de outra tabela e fazendo incremento


Total :=  QryHora.FieldByN

Pergunta

Olá pessoal, já fiz varias pesquisas e não consegui achar nada que me satifizesse, estou com o seguinte problema, tenho um sistema de cadastro de documentos, onde cada documento tem uma origem que é uma outra tabela, o meu problema é o seguinte eu preciso gravar cada documento pegando o sequencial da origem do documento, exemplo:

carta 001/Nome_da_Origem ai o proximo documento deve pegar

carta 002/Nome_da_Origem, ai no caso se o usuario escolher outra origem ele deve fazer assim

carta 001/Nome_da_Outra_Origem

minhas tabelas estao assim:

DOCUMENTO

DOC_CODIGO (int)

DOC_TEXTO (varchar)

ORI_CODIGO(int)

DOC_NUMERO(char)

ORIGEM

ORI_CODIGO(int)

ORI_DESCRICAO(varchar)

ORI_SEQUENCIAL(char)

ai o que tem q acontecer é o segunte quando o cara selecionar a origem o mandar salvar o documento eu preciso ir na tabela da origem que ele selecionou e pegar o ultimo numero sequencial e gravar no DOC_NUMERO que é o numero do documento e logo apos isso tenho que incrementar esse sequencial.

utilizo php e mysql, com mvc.

já li dois livros de mysql e não encontrei uma solução segura que garanta a consistencia desses dados se alguém puder me ajudar serei muito grato.

Editado por Total := QryHora.FieldByN
Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Oi, 'Total := QryHora.FieldByN'

Você já leu sobre algorítimos de lista encadeada e lista duplamente encadeada?

Sua solução, provavelmente, está neste algorítimo.

Link para o comentário
Compartilhar em outros sites

  • 0
Oi, 'Total := QryHora.FieldByN'

Você já leu sobre algorítimos de lista encadeada e lista duplamente encadeada?

Sua solução, provavelmente, está neste algorítimo.

Olá, então já estudei sim isso na faculdade mas na verdade estou querendo uma forma de controlar isso diretamente no mysql, tipo quando for gravar o documento dar um select no sequencial da origem e depois fazer um update no sequencial ao mesmo tempo, mas isso com segurança já que varias pessoas irao estar fazer a mesma operacao ao mesmo tempo.

Link para o comentário
Compartilhar em outros sites

  • 0
Olá, então já estudei sim isso na faculdade mas na verdade estou querendo uma forma de controlar isso diretamente no mysql, tipo quando for gravar o documento dar um select no sequencial da origem e depois fazer um update no sequencial ao mesmo tempo, mas isso com segurança já que varias pessoas irao estar fazer a mesma operacao ao mesmo tempo.

Você vai ter que transformar sua base para que aceite trabalhar como uma lista duplamente encadeada. Isto se chama auto relacionamento.

Voce deve criar dois ponteiros (atributos/campos) que informem a página anterior e a próxima. assim seu sistema saberá para qual página ele deve navegar para frente e para trás, não importando quantos registros sua tabela possua.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...