sqlite odbc получая час мин. сек - PullRequest
       10

sqlite odbc получая час мин. сек

0 голосов
/ 20 октября 2010

Я использую sqliteodbc и по какой-то причине он не получит часы, минуты и секунды. Я связываю колонку, используя это:

SQLBindCol(hTimeStampNotes, 5, SQL_C_TIMESTAMP, &(noteTimeStamp.submitTime), 16, &junkLong);

noteTimeStamp.submitTime - тип данных отметки времени:

typedef struct tagTimeStampType {//TIMESTAMP_STRUCT 
    short year;
    short month;
    short day;
    short hour;
    short minute;
    short second;
    unsigned int fraction; 
} TimeStampType;//TIMESTAMP_STRUCT;

Мои часы, минуты, секунды и дроби всегда равны 0. Это работает для меня, используя базу данных доступа. У кого-нибудь еще была эта проблема? Я мог поклясться, что это работало на меня неделю назад.

1 Ответ

0 голосов
/ 21 октября 2010

Хорошо, я не мог понять, почему это происходит, вот как я обошел это:

сначала я добавил массив в конец типа

typedef struct tagTimeStampType//TIMESTAMP_STRUCT 
   {
   short year;
   short month;
   short day;
   short hour;
   short minute;
   short second;
   unsigned int fraction; 
   char  timeStampStr[20];
   } TimeStampType;//TIMESTAMP_STRUCT;

, затем добавил#ifdef

#ifdef SQLITE
   SQLBindCol(hTimeStampNotes, 5, SQL_C_CHAR, noteTimeStamp.submitTime.timeStampStr, 20, &junkLong);
#else
   SQLBindCol(hTimeStampNotes, 5, SQL_C_TIMESTAMP, &(noteTimeStamp.submitTime), 16, &junkLong);

и просто ходил по строке сам с небольшой функцией

void TimeStampPrep(TimeStampType *timeStamp)
{
#ifdef SQLITE
   timeStamp->year = atoi(timeStamp->timeStampStr);
   timeStamp->month = atoi(&(timeStamp->timeStampStr[5]));
   timeStamp->day = atoi(&(timeStamp->timeStampStr[8]));
   timeStamp->hour = atoi(&(timeStamp->timeStampStr[11]));
   timeStamp->minute = atoi(&(timeStamp->timeStampStr[14]));
   timeStamp->second = atoi(&(timeStamp->timeStampStr[17]));
   return;
#else
   return;
#endif
}

Я все еще пытаюсь выяснить, почему этот мой оригинальный код не будет работать с sqlite.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...