2010-10-20 121 views
0

我使用的是sqliteodbc,由于某些原因,它无法获得小时,分钟和秒钟。sqlite odbc获取小时分钟。秒

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。这对我的作品我用这个绑定列使用访问数据库。有其他人有这个问题吗?我可以宣誓一周前这对我有用。

回答

0

好吧,我无法弄清楚,为什么这是这里发生的是我得到了它周围:

首先我添加了一个数组类型

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。

相关问题