resultado de 50 em 50

Delphi

02/12/2013

Galera tenho a seguinte situação:

Uma tabela pessoa que tem codigo, nome e digital com mais de 20.000 dados.

Faço um select tipo: Select Codigo, Nome, Digital From Pessoa

retorno a quantidade de dados com um cds.RecordCount.

preciso fazer um for ou outra coisa que me retorne registro de 1 a 50 insira em uma variável, faça uma comparação, estando correto o loop pare, não estando correto faça a comparação de 51 a 100 e ai por diante... alguém teria alguma sugestão para eu testar?


Nilson Alvernaz

Nilson Alvernaz

Curtidas 0

Respostas

Járabe Emanuel

Járabe Emanuel

02/12/2013

Vc que colocar os dados 1, 2, 3 ... 50 em uma variável?
Explica melhor amigo.
GOSTEI 0
Nilson Alvernaz

Nilson Alvernaz

02/12/2013

vou tentar passar mais dados:

tenho o seguinte código:

Select ...

cds.open;
cdsVerifica.First;

for i := 1 to (cdsVerifica.RecordCount) do ((supondo que tenha no mínimo uns 100 registros))
begin
cod := cds.FieldByName('Codigo').Value;
tptBuffer := cds.FieldByName('Digital').Value;
VeridisAddTemplateToDatabase(cod, tptBuffer); (( insere a digital e o codigo em uma variável de uma DLL ))

ret := VeridisMatch(cod, GET_LAST_RESULT); (( verifica se a comparação confere ))

if ret = RESULT_FOUND then (( casou a digital do banco com a da inserida no leitor ))
begin
edtNome.Text := cdsAcesso.fieldbyName('Nome').Value;
CodPessoa := StrToInt(cod);
end;

if ret = RESULT_SUCCESS then (( resultado não encontrado ))
begin
memoLog.Lines.Add('Usuário não encontrado');
end;

if ret = RESULT_NOP then ((Aguardando Biometria...))
begin
//
end;
.... (( continua o código ))

Acontece que se eu colocar mais de 50 registro na função VeridisAddTemplateToDatabase dá access violation se colocar menos o sistema roda direitinho, por isso quero ler de 50 em 50 registro no banco e fazer a comparação.

a função VeridisAddTemplateToDatabase:
function VeridisAddTemplateToDatabase(Const id: AnsiString; Const tptBuffer: AnsiString): Integer;
begin
Result := veridishighlevel_addTemplateToDatabase(PAnsiChar(id), PAnsiChar(tptBuffer), nil);
end;

function veridishighlevel_addTemplateToDatabase(Const id: PAnsiChar; Const tptBuffer: PAnsiChar; Const databaseName: PAnsiChar):
Integer; stdcall external 'veridishighlevel.dll'



GOSTEI 0
POSTAR