tags:

views:

655

answers:

5

Is there any difference or advantages using binary a file or XML file with TClientDataSet.

+1  A: 

The Binary file will be a little smaller.

The main advantage of the XML format is that you can pass it around via http(s) protocols.

Tim Jarvis
+7  A: 

Binary will be smaller and faster.

XML will be more portable and human readable.

Nick Hodges
A: 

Without having tested it: I guess the binary format would be quite a lot faster when reading and writing. You'd better do your own benchmarks for that, though.

Another advantage of binary might be, that it cannot be easily edited which prevents people from mucking up the data outside the application.

dummzeuch
+1  A: 

Binary is smaller and faster, but only readable by TClientDataSets.

XML is larger and slower (both are not that bad, i.e. not by orders of magnitude bigger or slower). XML is readable by people (not recommended in general, but it is doable), and software. Therefore it is more portable (as Nick wrote).

TClientDataSets can load and save their own style of XML, or you can use the Delphi XML Mapper tool to read and write any kind of XML.

XSLT can for instance be used to transform those XML files into any kind of text, including other XML, HTML, CSV, fixed columns, etc.

In contrast to what Tim indicates, both binary and XML can be transferred through HTTP and HTTPS. However, it is often appreciated sending XML as it is easier to trace.

Jeroen Pluimers
A: 

When using Delphi 2009, we have noticed that if the file has an extension of .XML, it will not save in binary format over an existing dfXMLUTF8 format, even with a LoadFromFile, SaveToFile. Changing the file extension to something else (.DAT, for example) allows saving the file in dfBinary. Our experience is that the binary file, in addition to being somewhat more difficult for the end-user to manipulate (a plus!), is approximately 50% smaller than the dfXMLUTF8 format file.