I use a C++ wrapper library libsqlite3x from 
http://wanderinghorse.net/computing/sqlite/.

I have a table which has file dates as INTEGER and I have inserted FILETIME 
(8 bytes) values using code.

Now I am trying to retrieve those dates. Here is my code:

   FILETIME ft;
   INT64 n;
   // sqlite3_column_int64 does not return correct value! Why??
   n = cursor.getint64(2);
   n = sqlite3_column_int64(cmd.handle(), 2);
   int size = 8;
   // Force it to be INT64
   n = *(PINT64)cursor.getblob(2, size);

   ft.dwLowDateTime = n & 0xffffffff;
   ft.dwHighDateTime = n >> 32;
   SYSTEMTIME st;
   FileTimeToSystemTime(&ft, &st);

   std::string path = cursor.getstring(4);
   printf("%d/%d/%d %d:%d:%d.%03d - %s\n", st.wYear, st.wMonth, st.wDay,
      st.wHour, st.wMinute, st.wSecond, st.wMilliseconds,
      path.c_str());

cursor.getint64 calls sqlite3_column_int64, so they are essentially the 
same. But neither of the two methods returns correct value (most are 0's). 
But getblob works correctly.

BTW, I have sqlite3 source built into my program. I tried to examine the 
source, but could not see why.

Help please!


_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to