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.