Lentidão na Pesquisa RMS

0 respostas
D

Eu tenho uma base de 200 registros e esta demorando cerca de 1 minuto para localizar um registro dentro da base. O código que estou usando é esse:

[i]public int getRecordId(String valor){

Filtro filtro = new Filtro(valor);

try {

RecordEnumeration re = database.enumerateRecords(filtro, null, false);

boolean exit = false;

String rec = null;

Store store = new Store();

while (re.hasNextElement() || exit){

int pos = re.nextRecordId();

rec = getRecord(pos);

System.out.println(rec);

if (store.IsReg(rec, valor)){

exit = true;

re.destroy();

return pos;

}

}

} catch (RecordStoreNotOpenException ex) {

ex.printStackTrace();

} catch (InvalidRecordIDException ex) {

ex.printStackTrace();

} catch (RecordStoreException ex) {

ex.printStackTrace();

}

return -1;

}

public class Filtro implements RecordFilter{

private String pesquisa = null;

public Filtro(String pesquisa) {
    this.pesquisa = pesquisa.toLowerCase();
}

public boolean matches(byte[] b) {
    String str = new String(b).toLowerCase();
    if (pesquisa != null && str.indexOf(pesquisa) > -1) {
        return true;
    }else{
        return false;
    }
}

}

public boolean IsReg(String record, String receipt)

{

int pos = record.indexOf("|");

String data = record.substring(0,pos);

if (data.equals(receipt)){

return true;

}else{

return false;

}

}[/i]

Alguém sabe uma maneira diferente de se fazer isso?

Muito obrigado.

Criado 11 de julho de 2007
Respostas 0
Participantes 1