Foros del Web » Programación para mayores de 30 ;) » Programación móvil »

Abrir correctamente un record despues de cerrar otro

Estas en el tema de Abrir correctamente un record despues de cerrar otro en el foro de Programación móvil en Foros del Web. ola mi problema es el siguiente tengo una conexion a base de datos desde mi movil lo que ago es descargar datos (Preguntas con susrespecticas ...
  #1 (permalink)  
Antiguo 16/06/2011, 10:22
 
Fecha de Ingreso: junio-2011
Mensajes: 7
Antigüedad: 13 años, 5 meses
Puntos: 0
Pregunta Abrir correctamente un record despues de cerrar otro

ola mi problema es el siguiente tengo una conexion a base de datos desde mi movil lo que ago es descargar datos (Preguntas con susrespecticas respuestas) para formar encuestas, una vez descargados los datos los guardo en un Record Store (RMS) asta aqui todo bien, ald escargar una solo encuesta no hay problema el problema es que al querer volver a descargar 2 o mas encuestas el Record Store no se abre correctamente quisiera saber porque me pasa eso
  #2 (permalink)  
Antiguo 17/06/2011, 15:15
 
Fecha de Ingreso: junio-2011
Mensajes: 8
Antigüedad: 13 años, 5 meses
Puntos: 3
Respuesta: Abrir correctamente un record despues de cerrar otro

Cita:
Iniciado por adrianuthh Ver Mensaje
ola mi problema es el siguiente tengo una conexion a base de datos desde mi movil lo que ago es descargar datos (Preguntas con susrespecticas respuestas) para formar encuestas, una vez descargados los datos los guardo en un Record Store (RMS) asta aqui todo bien, ald escargar una solo encuesta no hay problema el problema es que al querer volver a descargar 2 o mas encuestas el Record Store no se abre correctamente quisiera saber porque me pasa eso
No seria mejor utilizar SQLite en el movil.

De todos modos pongo las clases que utilizo para acceder al RecordStore


Clase que se encarga de manejar el RecordStore
Código PHP:

import java
.io.IOException;

import javax.microedition.rms.RecordStore;
import javax.microedition.rms.RecordStoreException;



public class 
PreferencesModel {
    private static 
RecordStore rs;

    public static final 
String NAME "ConfDB";

    
/**
     * 
     */
    
public static void open() {
        try {
            
rs RecordStore.openRecordStore(NAMEtrue);
        } catch (
RecordStoreException e) {
            
            
e.printStackTrace();
        }
    }

    
/**
     * 
     */
    
public static void close() {
        try {
            
rs.closeRecordStore();
        } catch (
RecordStoreException ex) {
        
            
ex.printStackTrace();
        }
    }

    
/**
     * 
     */
    
public static void save() {
        try {
            
byte[] record PreferencesEntry.serialize();
            if (
rs.getNumRecords() == 0) {
                
rs.addRecord(record0record.length);

            } else {
                
rs.setRecord(1record0record.length);
            }
        } catch (
RecordStoreException ex) {
            
            
ex.printStackTrace();
        } catch (
IOException ex) {
            
            
ex.printStackTrace();
        }
    }

    
/**
     * 
     */
    
public static void load() {
        try {
            
PreferencesEntry.deserialize(rs.getRecord(1));
        } catch (
IOException ex) {
        
            
ex.printStackTrace();
        } catch (
RecordStoreException ex) {
    
            
ex.printStackTrace();
        }
    }


Serialización de los datos
Código PHP:

import java
.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;

public class 
PreferencesEntry {

    public static 
byte[] serialize() throws IOException
    
{
        
ByteArrayOutputStream baos = new ByteArrayOutputStream();
        
DataOutputStream dos = new DataOutputStream(baos);
        
dos.writeInt(Preferences.runningGuiCount);
        return 
baos.toByteArray();
    }
    public static 
void deserialize(byte[] datathrows IOException
    
{
        
ByteArrayInputStream bais = new ByteArrayInputStream(data);
        
DataInputStream dis = new DataInputStream(bais);
        
Preferences.runningGuiCount=dis.readInt();

    }


Variables que se almacenaran
Código PHP:
public class Preferences {
    
    
//RecordStore
    
public static int runningGuiCount=0;
    
    
    public static 
void load(){
        
PreferencesModel.open();
        
PreferencesModel.load();
        
PreferencesModel.close();
    }
    
    public static 
void save(){
        
PreferencesModel.open();
        
PreferencesModel.save();
        
PreferencesModel.close();
    }


Con las clases que acabo de poner manejariamos correctamente nuestro RecordStore

Por ejemplo, si queremos que vaya contabilizando el numero de ejecuciones de la app, bastaría con poner al inicio el siguiente código :

Código PHP:
//carga los Datos almacenados en el recordstore
Preferences.load();
//Aumentamos en uno el valor de la varible
Preferences.runningGuiCount++;
//Guardamos  de nuevo los datos al recordstore
Preferences.save(); 
Si solo queremos obtener el numero de ejecuciones con esto seria suficiente(Aquí no va el método "Preferences.save();" , puesto que solo obtenemos valores mas no almacenamos

Código PHP:
//carga los Datos almacenados en el recordstore
Preferences.load();
int numeroEjecuciones=Preferences.runningGuiCount
  #3 (permalink)  
Antiguo 20/06/2011, 08:42
 
Fecha de Ingreso: junio-2011
Mensajes: 7
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Abrir correctamente un record despues de cerrar otro

[QUOTE=JIUM;3897344]No seria mejor utilizar SQLite en el movil.

De todos modos pongo las clases que utilizo para acceder al RecordStore


Clase que se encarga de manejar el RecordStore
[PHP]

Gracias por responder pero ya he coregido ese error aunque tu respuesta me parece mejor que la fomra en que lo corregi creare otra aplicacion con las clases que pusiste gracias por responder
  #4 (permalink)  
Antiguo 20/06/2011, 11:18
 
Fecha de Ingreso: junio-2011
Mensajes: 7
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Abrir correctamente un record despues de cerrar otro

Cita:
Iniciado por JIUM Ver Mensaje
No seria mejor utilizar SQLite en el movil.

De todos modos pongo las clases que utilizo para acceder al RecordStore
una duda la clase que maneja el Record Store es estatica ya que defines un solo nombre para el record Store, como se puede acer dinamica esta parte debido a que tde los datos que descargo el nombre de la encuesta es el que tomo para nombrar al RMS y asi poder abrirlo

Etiquetas: cerrar, correctamente, record
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:07.