Busca RE (RMS)

ola alguem por favor pode me dizer pq isso nao funciona ? aonde estou errando ? jah tentei de tudo !

[code]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
}
[/code]

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

Apos eu pesuisar pela entrada “reg1” funciona perfeitamente …

Soh que quando eu pesquiso com a outra entrada “reg2” nao funciona, é desviado para o else que por sua vez exibe o alert…

Porque vc sempre esta buscando por rsNomes.getRecord(1) ??? talves seja isso…

[]'s

[quote=malves_info]Porque vc sempre esta buscando por rsNomes.getRecord(1) ??? talves seja isso…

[]'s[/quote]
o “rsNomes.getRecord(1);” e para dar inicio a busca apartir do primeiro record e dentro do metodo If_Busca () a variavel record recebe o proximo record (record = reNomes.nextRecord(); ).

nao entendi pq a busca funciona somente com o “reg1” os demais registro contidos no recordstore nao funciona …

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();
		}
		
		
	}

[quote=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();
		}
		
		
	}
[/code][/quote]

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...

[code]
    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");
                }
       }
}
[/code]

eu implementei no MIDlet Visual e ficou assim: 

[code]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   
} [/code]
[code]
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 ());   
}   
}  
[/code]

pela logica era para funcionar, mais estou com problema que eu descrevo abaixo

[quote=Rafael Oliveira da Silva]ola alguem por favor pode me dizer pq isso nao funciona ? aonde estou errando ? jah tentei de tudo !

[code]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

Apos eu pesuisar pela entrada “reg1” funciona perfeitamente …

Soh que quando eu pesquiso com a outra entrada “reg2” nao funciona, é desviado para o else que por sua vez exibe o alert…


[/quote]

[quote=Rafael Oliveira da Silva][quote=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();
		}
		
		
	}
[/code][/quote]

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...

[code]
    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");
                }
       }
}
[/code]

eu implementei no MIDlet Visual e ficou assim: 

[code]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   
} [/code]
[code]
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 ());   
}   
}  
[/code]

pela logica era para funcionar, mais estou com problema que eu descrevo abaixo

[quote=Rafael Oliveira da Silva]ola alguem por favor pode me dizer pq isso nao funciona ? aonde estou errando ? jah tentei de tudo !

[code]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

Apos eu pesuisar pela entrada “reg1” funciona perfeitamente …

Soh que quando eu pesquiso com a outra entrada “reg2” nao funciona, é desviado para o else que por sua vez exibe o alert…


[/quote][/quote]

:thumbdown: :thumbdown: ???

[quote=Rafael Oliveira da Silva]ola alguem por favor pode me dizer pq isso nao funciona ? aonde estou errando ? jah tentei de tudo !

[code]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
}
[/code]

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

Apos eu pesuisar pela entrada “reg1” funciona perfeitamente …

Soh que quando eu pesquiso com a outra entrada “reg2” nao funciona, é desviado para o else que por sua vez exibe o alert…


[/quote]

alguem ai pode me ajudar por favor ???

[quote=Rafael Oliveira da Silva]ola alguem por favor pode me dizer pq isso nao funciona ? aonde estou errando ? jah tentei de tudo !

[code]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
}
[/code]

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

Apos eu pesuisar pela entrada “reg1” funciona perfeitamente …

Soh que quando eu pesquiso com a outra entrada “reg2” nao funciona, é desviado para o else que por sua vez exibe o alert…


[/quote]

Poxa Amigo não adianta vc ficar postando um monte de vez a mesma coisa… Se alguém souber vai te ajudar com certeza mas tenha paciencia…