I have some very large integers I need to insert and retrieve from SQLite without losing any digits. These numbers can be up to 8 bytes (20 digits) long.
The SQLite documentation says INTEGER datatypes can hold values up to 8 bytes long, however, when I insert any number greater than 17 digits, it gets converted into a REAL, and truncated to 17 significant digits. I have found only one way to insert/fetch these values without losing digits: define the column affinity to be TEXT, convert the value to a string in Python, then insert it into the SQLite database. The fetched value will be TEXT and contain all digits. However, if I do any arithmetic on it as the query executes, the value gets converted to REAL, truncated, then the truncated value is used in the arithmetic. I have a SQLite database version 3.7.8. I'm developing in Python version 2.4.4 and using PySqlite version 2.6.3. I'm aware of Adapters and Converters. They would have to be made such that the returned value is converted back to a TEXT value before SQLite returns the value to the program. This might work, but I would prefer to let SQLite do the manipulation in the usual manner. Is there any way to insert integers of any size, then retrieve them with a query that might do math or other manipulations on the values, without losing digits? Thanks!! Regards, Richard Watkins Product Development & Systems Engineering phone: 720-684-2193 email: richard.watk...@seagate.com _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users