Ver Mensaje Individual
  #4  
Antiguo 08-02-2013
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Reputación: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Hola code88.

No mencionas qué versión de Delphi utilizas, ni detallas en qué consiste la alternativa que dices funciona más rápido, ni los pormenores del proyecto, la razón para hacer lo que estás haciendo, el contexto, el objetivo real detrás de ese código, etc. En fin, que sería muy bueno que compartieras a detalle de dónde viene esa necesidad, para entender mejor lo que buscas, por qué lo buscas y qué alternativas habría.

Ahora bien, considera que un XML es un documento de texto con mucha información redundante. Pero así tiene que ser para ser transportable / transferible / compatible entre diferentes sistemas. Pero aquí, por lo poco que nos dejas ver, estamos hablando de un mismo sistema.

Me llama la atención que estando en red (o en una misma PC), recurras al guardado como XML, en lugar de enviar los datos directamente al servidor. Pero, si por alguna razón (que no nos has dicho) sigue siendo necesario almacenar el contenido del ClientDataSet en un buffer intermedio (como lo es esa variable stXMLData), entonces quizá deberías considerar usar el formato binario en lugar de XML:
Cita:
Empezado por la ayuda de Delphi
SaveToStream method (TCustomClientDataSet)

Saves a client dataset’s data to a stream.

Delphi syntax:

procedure SaveToStream(Stream: TStream; Format TDataPacketFormat=dfBinary);

Description

Call SaveToStream to write a client dataset’s data to a stream.

Stream is the name of an existing stream to write to.

Format indicates what format to use when saving the data, binary (dfBinary) or XML (dfXML), or UTF8-based XML (dfXMLUTF8).

If the stream requires a buffer, use the DataSize property to determine the required size of the buffer.

...

TDataPacketFormat type

TDataPacketFormat indicates how information is encoded in a data packet or delta packet.

Unit

DBClient

Delphi syntax:

type TDataPacketFormat = (dfBinary, dfXML, dfXMLUTF8);

Description

TDataPacketFormat indicates how a provider encodes database information into data packets. The following table lists the possible values:

Value Meaning

dfBinary Information is encoded in binary format.
dfXML Information is encoded in XML, with extended characters encoded using an escape sequence.
dfXMLUTF8 Information is encoded in XML, with extended characters represented using UTF8.
Espero sirva de algo mi intervención, saludos.

Al González.
Responder Con Cita