Ver Mensaje Individual
  #2  
Antiguo 01-10-2014
edgargh edgargh is offline
Miembro
 
Registrado: jun 2006
Ubicación: León, Guanajuato
Posts: 25
Reputación: 0
edgargh Va por buen camino
Hola, hay varias formas de hacerlo, yo lo manejo de la siguiente manera:

Del lado del servidor datasnap solo dejo la conexión y el dataset (Query o Table) enlazado a la conexion.

Ejemplo: Creo una funcion que se llama lista_estados que recibe de parametro una cadena con el nombre del pais sobre el cual deseo obtener el listado de los estados y el resultado lo regreso en un dataset

Código Delphi [-]
function TServerModule.lista_estados(Pais: string):TDataset;
begin
  qry_estados.Close;
  qry_estados.SQL.Clear;
  qry_estados.SQL.Add('select clave, nombre_estado ');
  qry_estados.SQL.Add('from estados ');
  qry_estados.SQL.Add('where nombre_pais='+quotedstr(pais));
  qry_estados.SQL.Add(' order by nombre_estado');
  qry_estados.Open;

  result:=qry_estados;
end;


De lado del cliente móvil agrego:

TSQLServerMethod.- lo nombro sm_estados y asocio las propiedades:

SQLConnection conexion_al_servidor_datasnap
ServerMethodName TServerModule.lista_estados
Params Nos aparecen 2 parametros: Pais (Entrada) y ReturnParameter (salida). Asociamos el tipo ftWideString al parametro Pais


TDatasetProvider.- lo nombro dsp_estados y le asocio en la propiedad Dataset el nombre de mi servermethod (sm_estados).

TClientDataSet .- lo nombro cds_estados y le asocio en la propiedad ProviderName el nombre de mi datasetprovider (dsp_estados)


Finalmente, hago mi consulta:
Código Delphi [-]
    sm_estados.close;
    sm_estados.Params.ParamByName('Pais').Value:=editpais.text;
    sm_estados.ExecuteMethod;
    sm_estados.SQLConnection.Close;
El resultado lo tengo en cds_estados y lo visualizo donde quiera. Saludos y espero sea lo que necesitas.

Última edición por ecfisa fecha: 02-10-2014 a las 00:32:15. Razón: etiquetas
Responder Con Cita