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 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 AsInteger, AsStr

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

2012-03-02 Thread Marcos Douglas
On Fri, Mar 2, 2012 at 1:02 PM, wrote: > > > On Fri, 2 Mar 2012, Marcos Douglas wrote: > >> On Wed, Feb 29, 2012 at 10:38 PM, Marcos Douglas wrote: >>> >>> Hi, >>> >>> The TField class have the FValueBuffer: Pointer attribute and have >>> also SetData(Buffer: Pointer,...) method that all T***Fie

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 th

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: Variant

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

2012-03-03 Thread Marcos Douglas
On Sat, Mar 3, 2012 at 9:25 AM, Alberto Narduzzi 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 variants. >> >>

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 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 co

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

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 : > 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;  // t

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

2012-03-03 Thread Marcos Douglas
On Sat, Mar 3, 2012 at 12:57 PM, silvioprog wrote: > 2012/3/3 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

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 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

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

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 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 th

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 (wh

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 > c