Hi I find the discussion very interesting. Apart from billing/accounting every good (scientific) application soones or later is bound to requare multiprecision library.
The best way, as was stated above, would be to use blobs, as it would allow to dispance with all in/out converting (in case of text). Also, you could use your own format (apart from IEEE) to store floating point data (or any other bignum data). Also, i have noticed that the situation when any oldstyle software platform meets specific computational needs or formats can be a good test case for its usefullnes to a particular project. Sometimes, a non-relational DB might be in order. Eugene 2011/3/23 Pavel Ivanov <paiva...@gmail.com> > > Yes, but I can not affect column type ... FreePascal SQLite3 connector > must > > be able to work with any user database. > > If your goal is to work with any user database created outside of your > FreePascal connector then chances are that user will use the same > database outside of your FreePascal connector too. And if use declared > column as NUMERIC then he probably will expect numbers to be inserted > into that column (especially if the data type inside FreePascal is > also some sort of number). User also will probably execute some > queries that do some arithmetic operations on values in that column. > And they will be really surprised to see that not all the data is > numbers there. > > So you better insert everything as numbers, let SQLite transform > everything to REAL and lose precision. And tell your users that it's > limitation of SQLite and you cannot do anything with it, only suggest > to insert big numbers as text. > > > Pavel > > On Wed, Mar 23, 2011 at 9:06 AM, LacaK <la...@users.sourceforge.net> > wrote: > >> And...no conversion is performed if you declare the field as text and > >> insert as text. > > > > Yes, but I can not affect column type ... FreePascal SQLite3 connector > must > > be able to work with any user database. > > > > And when user defines column like NUMERIC or DECIMAL ... so with NUMERIC > > column affinity, > > then it does not help when I write/bind numbers like TEXT > > (sqlite3_bind_text) '123456789123456789.123456789' > > because SQLite ALWAYS convert such "text number" to native floating-point > or > > integer number, which leads to lost of precision. > > > > So probably before bind I will test if number of significant digits > 15 > > then I will use sqlite3_bind_blob else sqlite3_bind_double > > > > -Laco. > > > > > > _______________________________________________ > > sqlite-users mailing list > > sqlite-users@sqlite.org > > http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users > > > > > _______________________________________________ > sqlite-users mailing list > sqlite-users@sqlite.org > http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users > _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users