Ver Mensaje Individual
  #1  
Antiguo 28-02-2012
andresenlared andresenlared is offline
Miembro
 
Registrado: oct 2003
Posts: 153
Reputación: 21
andresenlared Va por buen camino
Question 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??
__________________
Popayán-Colombia
Responder Con Cita