Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Desarrollo en Delphi para Android
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy


Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-07-2014
pape19 pape19 is offline
Miembro
 
Registrado: jul 2010
Posts: 96
Poder: 15
pape19 Va por buen camino
Almacenar de forma local datos de sesión de una App

Buenas tardes amigos.

Estoy desarrollando una aplicación mobile, en Delphi XE5; utilizo datasnap, que se conecta a un servidor remoto donde se encuentra la BD.

El usuario inicia la App, se loguea, y utiliza la misma. Lo que quiero lograr es alguna forma de guardar los datos de esa sesión localmente, de manera que el usuario no tenga que loguearse cada vez que quiere utilizar el programa.

Otra opción que le veo, es guardar en la base de datos remota un id de sesión, pero que id utilizo? es decir, que número que me identifique solamente ese dispositivo?.

Agradecería sus ideas, muchas gracias.
Responder Con Cita
  #2  
Antiguo 18-07-2014
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.927
Poder: 26
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Aparte de usar xml o json, sqlite es una opcion muy popular de hacer eso.
__________________
El malabarista.
Responder Con Cita
  #3  
Antiguo 22-07-2014
pape19 pape19 is offline
Miembro
 
Registrado: jul 2010
Posts: 96
Poder: 15
pape19 Va por buen camino
mamcx gracias por tu respuesta.

Respecto a sqLite, no quería crear una BD local por dos datos. En aplicaciones de escritorio para Win utilizaba algún archivo ini y leía el mismo al ejecutar la aplicación.

Respecto a las otras dos opciones que comentas, las desconozco, podrías explicarte un poco más?

Muchas gracias!
Responder Con Cita
  #4  
Antiguo 22-07-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.257
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por pape19 Ver Mensaje
Respecto a sqLite, no quería crear una BD local por dos datos. En aplicaciones de escritorio para Win utilizaba algún archivo ini y leía el mismo al ejecutar la aplicación.
Pues haz algo similar, guarda esos datos en un ficherito de texto.
Responder Con Cita
  #5  
Antiguo 22-07-2014
pape19 pape19 is offline
Miembro
 
Registrado: jul 2010
Posts: 96
Poder: 15
pape19 Va por buen camino
Perdon por mi ignorancia Casimiro, pero esto en Android se puede?
Responder Con Cita
  #6  
Antiguo 22-07-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.257
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Claro que se puede, como con cualquier otro sistema. Me parece que en las demos viene un ejemplo de escribir y leer un fichero de texto, a ver si lo encuentro...
Responder Con Cita
  #7  
Antiguo 24-05-2015
Avatar de fredo
fredo fredo is offline
Miembro
 
Registrado: oct 2003
Ubicación: Chile, Valparaiso
Posts: 318
Poder: 22
fredo Va por buen camino
Client Data Set

Usa Client Data set es facil de guardar y leer en cualquier plataforma, saludos!
__________________
^_^

http://stna.cl
Responder Con Cita
  #8  
Antiguo 28-05-2015
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
pape19,

Cita:
Empezado por pape19
...en Delphi XE5...utilizo Datasnap, que se conecta a un servidor remoto...Lo que quiero lograr es alguna forma de guardar los datos de esa sesión localmente...


Revisa este código:
Código Delphi [-]
unit Unit1;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,
  FMX.ListView.Types, FMX.StdCtrls, FMX.ListView, Data.DB, Datasnap.DBClient,
  FMX.Layouts, FMX.ListBox;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    ListBox1: TListBox;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  Status : Array[0..1] of Boolean = (False, True);

implementation

{$R *.fmx}

procedure TForm1.Button1Click(Sender: TObject);
var
   Table : TClientDataset;
   i : Integer;

begin

   Randomize;

   Table := TClientDataset.Create(nil);
   Table.FieldDefs.Add('CodUser', ftInteger, 0, False);
   Table.FieldDefs.Add('NameUser', ftString, 50, False);
   Table.FieldDefs.Add('Date', ftDate, 0, False);
   Table.FieldDefs.Add('Status', ftBoolean, 0, False);
   Table.CreateDataset;
   Table.Open;

   Randomize;

   for i := 1 to 10 do
   begin
      Table.Append;
      Table.FieldByName('CodUser').AsInteger := i;
      Table.FieldByName('NameUser').AsString := 'Name-' + IntToStr(Random(100));
      Table.FieldByName('Date').AsDateTime := Now + Random(730);
      Table.FieldByName('Status').AsBoolean := Status[Random(2)];
      Table.Post;
   end;

   Table.SaveToFile(ExtractFilePath(ParamStr(0)) + 'Table.cds');
   Table.Close;
   Table.Free

end;

procedure TForm1.Button2Click(Sender: TObject);
var
   Table : TClientDataset;
   i : Integer;
   S : String;

begin

   Table := TClientDataset.Create(nil);
   Table.LoadFromFile(ExtractFilePath(ParamStr(0)) + 'Table.cds');
   Table.Open;
   Table.First;

   ListBox1.Clear;

   while not Table.Eof do
   begin
      S := Format('%s  %s  %s  %s', [Table.FieldByName('CodUser').Value,
                                     Table.FieldByName('NameUser').Value,
                                     Table.FieldByName('Date').Value,
                                     Table.FieldByName('Status').Value]);
      ListBox1.Items.Add(S);
      Table.Next;
   end;

   Table.Close;
   Table.Free

end;

end.
El código anterior en Delphi XE7 sobre Windows 7 Professional x32, Ejemplifica el uso en FMX del componente TClientDataset para generar, guardar y leer información de la aplicación, como se muestra en la siguiente imagen:



Espero sea útil

Nelson.

Última edición por nlsgarcia fecha: 28-05-2015 a las 06:31:40.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Forma de almacenar pdf mjjj SQL 1 11-05-2012 19:30:11
Problema al Almacenar Datos (VIH)Lestat Conexión con bases de datos 5 22-06-2005 18:06:44
Almacenar Datos por un IBTAble (VIH)Lestat Conexión con bases de datos 1 18-06-2005 22:49:45
Puerto serie local en sesion de terminal server davichu Windows 0 07-06-2004 20:40:13
almacenar datos pepelu1975 OOP 1 12-02-2004 18:25:00


La franja horaria es GMT +2. Ahora son las 00:47:49.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi