RE : RE : RE : RE : [fpc-pascal] Re: Variant vs Pointer

2012-03-04 Thread Ludo Brands
In our previous episode, Ludo Brands said: When you are thinking of using JSON you can use AnsiString as the internal format eventually adding a datatype tag to avoid conversion data loss as much as possible. ansistring is a decimal type. This incurs a binary to decimal conversion

Re: [fpc-pascal] Re: Variant vs Pointer

2012-03-03 Thread Alberto Narduzzi
The reason for using a buffer in tdataset is that a record's data normally is located in one continuous buffer, from which a value is picked from the right spot (including strings) You can't have that with variants. Hm... right. So, if I will have a class like a TParam, that have FValue:

Re: RE : [fpc-pascal] Re: Variant vs Pointer

2012-03-03 Thread Marcos Douglas
On Sat, Mar 3, 2012 at 3:26 AM, Ludo Brands ludo.bra...@free.fr wrote: I need implements a similar structure but I need know if the use of Variant have very cost. It has a cost. The reason for using a buffer in tdataset is that a record's data normally is located in one continuous

Re: [fpc-pascal] Re: Variant vs Pointer

2012-03-03 Thread Marcos Douglas
On Sat, Mar 3, 2012 at 9:25 AM, Alberto Narduzzi albertonardu...@yahoo.com wrote: The reason for using a buffer in tdataset is that a record's data normally is located in one continuous buffer, from which a value is picked from the right spot (including strings) You can't have that with

RE : RE : [fpc-pascal] Re: Variant vs Pointer

2012-03-03 Thread Ludo Brands
Think in my class like a Business Object. The struct is very similar with TParams it has many TParam. The data, in a TParam, is save in a Variant type. I need something like: u := TmyBO.Create; // the name does matter u.Attr['name'].Value := 'Marcos'; // an instance is created and the

Re: RE : RE : [fpc-pascal] Re: Variant vs Pointer

2012-03-03 Thread Marcos Douglas
On Sat, Mar 3, 2012 at 11:52 AM, Ludo Brands ludo.bra...@free.fr wrote: Think in my class like a Business Object. The struct is very similar with TParams it has many TParam. The data, in a TParam, is save in a Variant type. I need something like: u := TmyBO.Create;  // the name does matter

Re: RE : [fpc-pascal] Re: Variant vs Pointer

2012-03-03 Thread Luiz Americo Pereira Camara
On 3/3/2012 10:08, Marcos Douglas wrote: Think in my class like a Business Object. The struct is very similar with TParams it has many TParam. The data, in a TParam, is save in a Variant type. I need something like: u := TmyBO.Create; // the name does matter u.Attr['name'].Value := 'Marcos';

Re: RE : [fpc-pascal] Re: Variant vs Pointer

2012-03-03 Thread silvioprog
2012/3/3 Luiz Americo Pereira Camara luiz...@oi.com.br: On 3/3/2012 10:08, Marcos Douglas wrote: Think in my class like a Business Object. The struct is very similar with TParams it has many TParam. The data, in a TParam, is save in a Variant type. I need something like: u := TmyBO.Create;  

Re: RE : [fpc-pascal] Re: Variant vs Pointer

2012-03-03 Thread Marcos Douglas
On Sat, Mar 3, 2012 at 12:57 PM, silvioprog silviop...@gmail.com wrote: 2012/3/3 Luiz Americo Pereira Camara luiz...@oi.com.br: On 3/3/2012 10:08, Marcos Douglas wrote: Think in my class like a Business Object. The struct is very similar with TParams it has many TParam. The data, in a

RE : RE : RE : [fpc-pascal] Re: Variant vs Pointer

2012-03-03 Thread Ludo Brands
Or define an internal storage format and convert the different types to that format. That is also what variants are doing. The difference is that variants have pre-defined assignment routines and conversions between the different variant types which don't always fit what you

Re: RE : RE : RE : [fpc-pascal] Re: Variant vs Pointer

2012-03-03 Thread Marcos Douglas
On Sat, Mar 3, 2012 at 1:20 PM, Ludo Brands ludo.bra...@free.fr wrote: Or define an internal storage format and convert the different types to that format. That is also what variants are doing. The difference is that variants have pre-defined assignment routines and conversions between

Re: RE : RE : RE : [fpc-pascal] Re: Variant vs Pointer

2012-03-03 Thread Marco van de Voort
In our previous episode, Ludo Brands said: When you are thinking of using JSON you can use AnsiString as the internal format eventually adding a datatype tag to avoid conversion data loss as much as possible. ansistring is a decimal type. This incurs a binary to decimal conversion per se

Re: [fpc-pascal] Re: Variant vs Pointer

2012-03-02 Thread michael . vancanneyt
On Fri, 2 Mar 2012, Marcos Douglas wrote: On Wed, Feb 29, 2012 at 10:38 PM, Marcos Douglas m...@delfire.net wrote: Hi, The TField class have the FValueBuffer: Pointer attribute and have also SetData(Buffer: Pointer,...) method that all T***Field subclasses use to set themselves. The methods

Re: [fpc-pascal] Re: Variant vs Pointer

2012-03-02 Thread Marcos Douglas
On Fri, Mar 2, 2012 at 1:02 PM, michael.vancann...@wisa.be wrote: On Fri, 2 Mar 2012, Marcos Douglas wrote: On Wed, Feb 29, 2012 at 10:38 PM, Marcos Douglas m...@delfire.net wrote: Hi, The TField class have the FValueBuffer: Pointer attribute and have also SetData(Buffer: Pointer,...)

RE : [fpc-pascal] Re: Variant vs Pointer

2012-03-02 Thread Ludo Brands
I need implements a similar structure but I need know if the use of Variant have very cost. It has a cost. The reason for using a buffer in tdataset is that a record's data normally is located in one continuous buffer, from which a value is picked from the right spot