Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Delphi para la web (https://www.clubdelphi.com/foros/forumdisplay.php?f=51)
-   -   Servicios web y clientdataset (https://www.clubdelphi.com/foros/showthread.php?t=77832)

andresenlared 28-02-2012 21:46:03

Servicios web y clientdataset
 
Saludos.

Tengo un caso, con unos servicios web que me retorna un objeto como por ejemplo

Código Delphi [-]
 apiVO = class(TRemotable)
  private
    Fcodigo: WideString;
    FcodigoTipoPresentacion: WideString;
    FcodigoUnidadMedida: WideString;
    FcodigoViaAdministracion: WideString;
    Fconcentracion: WideString;
    Fdescripcion: WideString;
    Fid: Int64;
  published
    property codigo: WideString read Fcodigo write Fcodigo;
    property codigoTipoPresentacion: WideString read FcodigoTipoPresentacion write FcodigoTipoPresentacion;
    property codigoUnidadMedida: WideString read FcodigoUnidadMedida write FcodigoUnidadMedida;
    property codigoViaAdministracion: WideString read FcodigoViaAdministracion write FcodigoViaAdministracion;
    property concentracion: WideString read Fconcentracion write Fconcentracion;
    property descripcion: WideString read Fdescripcion write Fdescripcion;
    property id: Int64 read Fid write Fid;
  end;
/*******************************************/

 apiVOArray = array of apiVO;

En el codigo anterior se obtienen unos datos de una base de datos oracle para que sean procesados. En algunos casos pueden ser demaciados datos unos 30 mil registros por decir un valor.....luego se esta cargando en un clientedataset para que queden en el cliente y se pueda manipular. para lo anterior se esta recorriendo el array, y agregando cada registro al clientdataset.

Código Delphi [-]
    strXml: apiVOArray;

    strXml:= Servicio_web_Actividades.getActividad(idact,codact,desact);


   for i := 0 to High(strXml) do
    begin
      objActividad := strXml[i] As apiVO;
      Client_actividad_auditada.insert;
      Client_actividad_auditada.FieldByName('ID_ACTIVIDAD').AsInteger:=objActividad.id;
      Client_actividad_auditada.FieldByName('COD_ACTIVIDAD').AsString:=objActividad.codigo;
      Client_actividad_auditada.FieldByName('DES_ACTIVIDAD').AsString:=objActividad.descripcion;
      Client_actividad_auditada.Post;

etc.

No se si se pueda optimizar este proceso de otra forma, o si realizo una conexion directa a la base de datos con ADO y clientdataset datasetprovider. Alguna idea??


La franja horaria es GMT +2. Ahora son las 13:52:11.

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