Como apontar para o ultimo registro no DBGrid?
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
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
Curtidas 0
Respostas
Japa
26/07/2005
Tem chave primaria nessa tabela amizade??
GOSTEI 0
Raserafim
26/07/2005
dá uma pesquisada no forum sobre [b:6ffbbf869b]busca incremental[/b:6ffbbf869b]
GOSTEI 0
Adriano_servitec
26/07/2005
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+
Flw
T+
GOSTEI 0
Japa
26/07/2005
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
GOSTEI 0
Adriano_servitec
26/07/2005
Busca incremental tentei fazer umas pesquisas mais nao obtive o resultado esperado, como sera?
Flw
T+
Flw
T+
GOSTEI 0
Massuda
26/07/2005
Não entendo muito de BD, por isso posso estar enganado...
A propósito...
...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?GOSTEI 0
Rjun
26/07/2005
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]
[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;
GOSTEI 0
Japa
26/07/2005
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:
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...
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...
GOSTEI 0
Japa
26/07/2005
Opa a função do Rjun e bem melhor.... hehehhe nem veja o meu :wink:
GOSTEI 0
Adriano_servitec
26/07/2005
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
Agradeço ao Massuda, RJun e ao Japa pela atençao
Obrigado
Adriano
GOSTEI 0