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

Incrementação Manual


Guest joseueg

Pergunta

4 respostass a esta questão

Posts Recomendados

  • 0

se for quabto ao banco que você esta per guntando seria assim:

var

x:integer;

begin

query.sql.clear;

query.sql.add('select * from tabela order by codigo');

query.open;

query.last;

x:=query.fields[0].integer +1;

query.insert;

query.fields[1].asinteger:= x;

query.post;

foi feita uma consulta no banco ordenando por codigo(chave primaria), depois move ao fim

pega o ultimo valor e acrecenta +1;

depois grava esse x comosendo o proximo codigo

espero que seja isto que você tenha perguntado. se não espliva melhor como o Churc falou!!

Link para o comentário
Compartilhar em outros sites

  • 0

Erso, permita-me sugerir o uso mais comum desta sua idéia:

Utiliza-se uma query auxiliar, apenas para obter o maior valor presente na tabela. Depois, soma-se 1 a este valor para gerar o próximo número.

A obtenção e atribuição deste item deve preferencialmente ser feito no momento imediatamente anterior a gravação definitiva no banco (BeforePost). Isto porque, em sistemas com múltiplos usuários, obter este número em outro momento pode resultar que na hora da gravação efetiva um usuário já tenha gravado os dados utilizando o código que um segundo tentará utilizar - resultando em key-violation.

Este procedimento não garante que tal fato não possa ocorrer, entretanto, minimiza esta possibilidade. Ex.:

procedure TabNOMEBeforePost(DataSet: TDataSet);
begin
  QryCodigo.SQL.Clear;
  QryCodigo.SQL.Add('select MAX(codigo) from tabela order by codigo');
  QryCodigo.SQL.Open;
  TabNOMECodigo.Value := QryCodigo.Fields[0].AsInteger +1;
end;

[]s

Link para o comentário
Compartilhar em outros sites

  • 0

Cara verdade!!!!! :( ,

prefiro ainda usar autoincremento, ou nocaso de interbase um trigger para fazer isso!!!!

ai não a problemas de codigos repetidos......

o que v6 acham ???????, um professor meu disse que é melhor fazer incremento no proprio sistema.

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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...