Fórum resultado de 50 em 50 #462813

02/12/2013

0

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

Responder

Posts

03/12/2013

Járabe Emanuel

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

Gostei + 0

03/12/2013

Nilson Alvernaz

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'



Responder

Gostei + 0

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

Aceitar