sql >> Base de Datos >  >> RDS >> Mysql

descargar valores de la tabla sql para reutilizarlos sin conexión

Para FLASH:

Para guardar datos localmente con flash, puede usar una de las 3 maneras:la memoria caché de Flash Player, un SharedObject , o una FileReference objeto. Y para su archivo local, olvídese de PHP y MySQL porque estamos hablando solo de los datos que obtuvo (json, xml, txt, ...).

- Caché de Flash Player:

Debe saber que, de manera predeterminada, Flash Player coloca una copia local de su archivo en su caché. Puede usar esta copia local como una fuente fuera de línea de sus datos, pero no olvide que Flash Player no guardó la última versión de su archivo remoto sino la primera y que http://www.ejemplo.com/datos.php es diferente de http://www.example.com/data.php?123 incluso si es el mismo archivo! Para obtener más detalles al respecto, consulte mi respuesta a esta pregunta .

- Objeto compartido:

No sé el tamaño de sus datos cargados, pero como dijo Adobe sobre SharedObject:

Creo que no se usa para archivos grandes y no se recomienda almacenar archivos sino algunos datos simples. Por supuesto, como una cookie para el navegador, SharedOject necesita la autorización del usuario para escribir datos en el disco duro y el usuario puede eliminarlos en cualquier momento.

- Referencia del archivo:

Creo que esta es la mejor manera de hacer lo que estás buscando. Debe saber que para guardar un archivo usando FileReference, se invita a su usuario a seleccionar un archivo para guardar datos y leerlo por segunda vez. Entonces, si no desea que ningún usuario interactúe con su aplicación, olvídese de esta manera.

FileReference usando el ejemplo:

var local_file_name:String = 'local.data',
    file:FileReference = new FileReference(),
    local_file_filter:FileFilter = new FileFilter('local data file', '*.data'),
    remote_data_url:String = 'http://www.example.com/data.php',
    url_request:URLRequest,
    url_loader:URLLoader,       
    connected:Boolean = true;

if(connected){
    get_remote_data();
} else {
    get_local_data();
}

function get_remote_data(): void {
    //we use a param to be sure that we have always the last version of our file
    url_request = new URLRequest(remote_data_url + ('?' + new Date().getTime()));
    url_loader = new URLLoader();
    url_loader.addEventListener(Event.COMPLETE, on_data_loaded);
    url_loader.load(url_request);           
}

function get_local_data(): void {
    // show the select dialog to the user to select the local data file
    file.browse([local_file_filter]);
    file.addEventListener(Event.SELECT, on_file_selected);          
}

function on_data_loaded(e:Event): void {
    var data:String = e.target.data;
    // if the remote data is successfully loaded, save it on a local file 
    if(connected){
        // show the save dialog and save data to a local file
        file.save(data, local_file_name);
    }
    // use your loaded data
    trace(data);            
}

function on_file_selected(e:Event): void {
    file.addEventListener(Event.COMPLETE, on_data_loaded);
    file.load();
}

Este código mostrará cada vez que el usuario guarde un cuadro de diálogo, por supuesto, es solo una muestra, debe adaptarlo a sus necesidades ...

EDITAR

Para AIRE:

Con AIR no necesitamos un objeto FileReference, en su lugar usamos Archivo y un FileStream objeto para guardar datos :

// for example, our local file will be saved in the same dir of our AIR app
var file:File = new File( File.applicationDirectory.resolvePath('local.data').nativePath ),
    remote_data_url:String = 'http://www.example.com/data.php',
    data_url:String = remote_data_url,
    url_request:URLRequest,
    url_loader:URLLoader,       
    connected:Boolean = true;

if(!connected){
    // if we are not connected, we use the path of the local file
    data_url = file.nativePath;     
}

load_data();

function load_data(): void {
    url_request = new URLRequest(data_url);
    url_loader = new URLLoader();
    url_loader.addEventListener(Event.COMPLETE, on_data_loaded);
    url_loader.load(url_request);           
}

function on_data_loaded(e:Event): void {
    var data:String = e.target.data;
    if(connected){          
        // save data to the local file
        var file_stream:FileStream = new FileStream();
            file_stream.open(file, FileMode.WRITE);
            file_stream.writeUTFBytes(data);
            file_stream.close();
    }
    trace(data);            
}

Espero que pueda ayudar.