malves_info:
Eu tenho um exemplo de um método cliente, espero que vc tire proveito desde exemplo:
public Vector getClientes() throws SistemaException{
Vector clientes = new Vector();
Cliente cliente;
DataInputStream dis;
this.openRecordStore();
try {
RecordEnumeration re = rs.enumerateRecords(null, null, false);
while(re.hasNextElement()){
dis = new DataInputStream(new ByteArrayInputStream(rs.getRecord(re.nextRecordId())));
cliente = new Cliente();
cliente.setNome(dis.readUTF());
cliente.setEmail(dis.readUTF());
cliente.setEndereco(dis.readUTF());
clientes.addElement(cliente);
dis.reset();
}
return clientes;
} catch (Exception e) {
throw new SistemaException("Mentodo carregaClientes " + e.toString());
} finally{
this.closeRecordStore();
}
}
valeu..
mais olhando para o seu metodo nao me veio nd ... continuo sem entender, o problema eh que eu to tentando implementar o codigo abaixo no MIDlet Visual...
public void Busca () throws RecordStoreException, IOException
{
// Recupera os registros usando enumeração
try
{
reNomes = rsNomes.enumerateRecords(null, null, false);
}
catch (Exception erro)
{
}
if (reNomes.numRecords()>0)
{
ByteArrayInputStream bStream;
DataInputStream dStream;
String nameRMS = null;
byte [] record = reNomes.nextRecord();
while (reNomes.hasNextElement())
{
bStream = new ByteArrayInputStream (record);
dStream = new DataInputStream (bStream);
nameRMS = dStream.readUTF();
if (nameRMS.compareTo(tf_Buscar.getString())== 0)
{
findAddress = true;
String nameRMS2;
nameRMS2 = dStream.readUTF();
list.append(nameRMS+" - "+nameRMS2,null);
}
record = reNomes.nextRecord();
}
if (!findAddress)
System.out.println("nao cadastrado");
}
else
{
System.out.println("nao cadastrado");
}
}
}
eu implementei no MIDlet Visual e ficou assim:
public void If_RS_Vazio () {
if (reNomes.numRecords()>0) {
record = rsNomes.getRecord(1);
while (reNomes.hasNextElement())
{
bStream = new ByteArrayInputStream (record);
dStream = new DataInputStream (bStream);
nameRMS = dStream.readUTF();
If_Busca ();
}
} else {
// write pre-action user code here
switchDisplayable (null, getAlert_RecordStore_vazio ());
// write post-action user code here
}
// enter post-if user code here
}
public void If_Busca () {
// enter pre-if user code here
if (nameRMS.compareTo(tf_Buscar.getString())== 0) {
nameRMS2 = dStream.readUTF();
switchDisplayable (null, getLstNomes ());
lstNomes.append(nameRMS+" - "+nameRMS2,null);
record = reNomes.nextRecord();
} else {
switchDisplayable (null, getAlert_Nao_Encontrado ());
}
}
pela logica era para funcionar, mais estou com problema que eu descrevo abaixo
Rafael Oliveira da Silva:
ola alguem por favor pode me dizer pq isso nao funciona ? aonde estou errando ? jah tentei de tudo !
public void If_RS_Vazio () {
if (reNomes.numRecords()>0) {
record = rsNomes.getRecord(1);
while (reNomes.hasNextElement())
{
bStream = new ByteArrayInputStream (record);
dStream = new DataInputStream (bStream);
nameRMS = dStream.readUTF();
If_Busca ();
}
} else {
// write pre-action user code here
switchDisplayable (null, getAlert_RecordStore_vazio ());
// write post-action user code here
}
// enter post-if user code here
}
public void If_Busca () {
// enter pre-if user code here
if (nameRMS.compareTo(tf_Buscar.getString())== 0) {
nameRMS2 = dStream.readUTF();
switchDisplayable (null, getLstNomes ());
lstNomes.append(nameRMS+" - "+nameRMS2,null);
record = reNomes.nextRecord();
} else {
switchDisplayable (null, getAlert_Nao_Encontrado ());
}
}
vejamos abaixo o RecordStore
[img]http://lh5.ggpht.com/_b4PZP_xmuBI/SKY_ABDKL1I/AAAAAAAAAHI/jaFutbkT0Rw/s400/rs.JPG[/img]
Apos eu pesuisar pela entrada "reg1" funciona perfeitamente ....
[img]http://lh5.ggpht.com/_b4PZP_xmuBI/SKY_grrknlI/AAAAAAAAAHY/_y6qO4b5Lvo/s400/busca%20ok.JPG[/img]
Soh que quando eu pesquiso com a outra entrada "reg2" nao funciona, é desviado para o else que por sua vez exibe o alert...
[img]http://lh6.ggpht.com/_b4PZP_xmuBI/SKZART7u1GI/AAAAAAAAAHo/3-Lj508Za3g/s400/reg%202.JPG[/img]