> > 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. > >> 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. Ludo _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal