GARANTIR DESCONTO

Fórum Como apontar para o ultimo registro no DBGrid? #289527

26/07/2005

0

Ola amigos

To com uma duvida como pegar o ultimo registro de um banco de dados usando o locate o outro comando

ex:

caso no dbgrid esteja assim

nrlcto valor
1 50,00
2 30,00
3 25,00
1 18,00
3 17,00
4 14,00


Entao se eu digitar dentro de um edit o numero 1 ele me apontar no ultimo registro do numero 1 que eh o valor de 18,00, se dentro do edit digitar o numero 3 aponta para 17,00, pro numero 2 apontar para 30,00

Entao como posso fazer isso tentei usar o locate e o last so que ai aponta pro ultimo registro e nao pro registro que eu quero, se tirar o last aponta para o primeiro registro.

Alguem pode me ajudar?

Desde ja agradeço
Obrigado
Adriano


Adriano_servitec

Adriano_servitec

Responder

Posts

26/07/2005

Japa

Tem chave primaria nessa tabela amizade??


Responder

Gostei + 0

26/07/2005

Raserafim

dá uma pesquisada no forum sobre [b:6ffbbf869b]busca incremental[/b:6ffbbf869b]


Responder

Gostei + 0

26/07/2005

Adriano_servitec

Ola Japa, nao possui chave primaria nao, pq tem que ter? esta em paradox se incluir chave primaria nao da o key violation?


Flw
T+


Responder

Gostei + 0

26/07/2005

Japa

Olha amizade e que não sei muito de banco de dados paradox... mas e que com a chave primaria e mais facil de manipular aquele determinado registro... com isso fazendo a busca incremental como o nosso amigo raserafim disse :D


Responder

Gostei + 0

26/07/2005

Adriano_servitec

Busca incremental tentei fazer umas pesquisas mais nao obtive o resultado esperado, como sera?


Flw
T+


Responder

Gostei + 0

26/07/2005

Massuda

Não entendo muito de BD, por isso posso estar enganado...
...nao possui chave primaria nao, pq tem que ter?
A chave primária geralmente é um campo (ou conjunto de campos) que identifica unicamente um registro no BD. Por exemplo, num cadastro de clientes, geralmente se cria um campo código do cliente que é o número individual de cada cliente, de modo que esse código pode ser usado como chave primária.
...esta em paradox se incluir chave primaria nao da o key violation?
O erro de key violation ocorre quando a chave primária está repetida. Usando seus dados como exemplo, o campo nrlcto não serve como chave primária, pois ele contem valores repetidos. Para poder usar esse campo como chave primária, você teria que remover os itens com mesmo nrlcto.

A propósito...
...se eu digitar dentro de um edit o numero 1 ele me apontar no ultimo registro do numero 1 que eh o valor de 18,00...
...como nrlcto não é único, se seu programa mostrar o registro com valor 50,00, ele não estaria errado, já que esse registro tem também como número de lançamento o valor 1. Ou esse valor 1 seria relacionado com algum outro campo que não nrlcto?


Responder

Gostei + 0

26/07/2005

Rjun

Parece que os registros estão na ordem que foram inseridos. O que você pode fazer é criar uma função que localize o registro varrendo a tabela de tras pra frente.

[b:ed677e15e8] pseudocódigo [/b:ed677e15e8]
function Achei(Query: TQuery; int codigo): boolean;
begin
  result := false;
  Query.Last;
  while not Query.Bof do
  begin
    if (codigo = Query.FieldByName(´NrLcto´).Value) then
    begin
      result := true;
      exit
    end;
    else
       Query.Prior;
  end;
end;



Responder

Gostei + 0

26/07/2005

Japa

Amizade fiz uma funçãozinha para ajudar um pouco a vc:
mas essa função ia funcionar se tive-se esses campos
Table1
*Identidade
*nrlcto
*Valor

Tres campos o primeiro seria a chave primaria... a segunda e a terceira vai ser seus campos....
a função e essa:
function UltimoRegistro(var Procura: Integer): Integer; var id: Integer; begin Table1.First; id:= 0; while not Table1.Eof do begin if Table1.Fields[1].AsInteger=Procura then begin id:= Table1.Fields[0].AsInteger; end; Table1.Next; end; result:= id; end;


Ele vai te retornar a chave primaria onde esta o registro... Se ele retornar 0 (zero) e que não encontrou nenhum registro com esse numero....
Assim com um locate vc pode encontrar o registro que vc precisa...

Boa sorte amizade...


Responder

Gostei + 0

26/07/2005

Japa

Opa a função do Rjun e bem melhor.... hehehhe nem veja o meu :wink:


Responder

Gostei + 0

26/07/2005

Adriano_servitec

Ola amigos muito obrigado pela ajuda e pela dica e funcoes que postaram ai vou experimentar todas


Agradeço ao Massuda, RJun e ao Japa pela atençao

Obrigado
Adriano


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar