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
[email protected]
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users