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 the different variant types which don't always fit what you >> > want (date formats, decimal points, precision, characters >> set, etc.). >> > Assign fe. 1.2 to a variant and it will store it as a >> double while you >> > perhaps meant a 32 digit precision numeric value. >> >> I'm thinking to use JSON (TJSONData and subclasses) or at >> least the same idea. Could you give an example to use a >> internal storage format? Do you talk about Pointer and conversions? >> > > 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. > I have never used TJSONData before but used a homebrewn json implementation > to transfer arbitrary database data.
Well, if I will use JSON, I can use TJSONData for this job because it have all conversions types were implemented. >> >> If Variant is so bad, why TParam is implemented using it? >> >> >> > >> > That is a very good question. Delphi compatibility is probably the >> > answer. >> > >> > Just look at the VarFmtBCD custom variant format created to fit the >> > higher precision numeric data types and all the >> difficulties to get it >> > right. >> > >> > Ludo >> >> Well, TParams in Delphi works fine. >> My new class will works with DBMS data format (integer, >> varchar, etc) very similar with TParams (I inherited of >> TParams, at the moment) with more functionalities. >> >> The TParams class, AFAIK, should work well with DBMS data >> format, don't? >> > > Again, the higher precision numeric and decimal datatypes as used in fe. > Oracle are poorly supported with variants. If higher precision numerics, > date/time formats, decimal points and other locale related conversions > aren't an issue for you, and if you don't want strict compile time type > checking, please do use variants. Thanks for these tips. I will use the JSON implementation in fpjson unit. Marcos Douglas _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal