On Thu, 3 Jan 2008 16:57:12 -0800, Jerry Krinock <[EMAIL PROTECTED]> wrote:
>I need to read an sqlite database generated by others. So I wrote an >outer loop which steps through the rows of a table using sqlite3_step, >and an inner loop which steps through the columns. The inner loop >finds the type using sqlite3_column_type(), then 'switches' to get the >value using the appropriate sqlite3_column_XXXXX() function. > >It works fine if, when encountering an SQLITE_INTEGER type, I use >sqlite_column_int64() to get the data. > >I don't know whether or not I'm just "lucky" that the application >which wrote the database uses 64 bit for all of its integers? If so, >what if someone throws a 32-bit integer at me someday? How can I tell >whether integer data objects in a table are 32 or 64 bit? The column >specifications I get from pragma_table_info() are likewise >uninformative, saying simply type=INTEGER. > >Thanks again, > >Jerry Krinock If I understand the info at http://www.sqlite.org/c3ref/c_blob.html well, the INTEGER is always a 64-bit signed integer. Internally, integers are compressed, so they don't occupy eight bytes all the time. sqlite3_column_int64(); will always return a sqlite3_int64. So, no need to worry. -- ( Kees Nuyt ) c[_] ----------------------------------------------------------------------------- To unsubscribe, send email to [EMAIL PROTECTED] -----------------------------------------------------------------------------