|
|
|
DateTime + SQL + C++
|
|||
|---|---|---|---|
|
#18+
Выполняю некоторый запрос SQL По результатам запроса получаю данные в виде char* _pData затем, зная типы данных и размеры, начинаю разбирать эту строчку. int, double, string - все понятно. index = 0; char* _pData = ...; for(int i = 0; i < countColumn; i++) { ... switch(_DataType) { ... case typeInt: { int intVal = *(int*)(&_pData ); } break; case typeDouble: { double dblVal = *(double*)(&_pData); } break; case typeString: { CString str; str.SetString((wchar_t*)(&_pData); } break; case typeDateTime: { ????????????????? } break; ... } } как принять дату? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2005, 12:06 |
|
||
|
DateTime + SQL + C++
|
|||
|---|---|---|---|
|
#18+
дополнение дата там хранится в таком виде: 2001-12-12 00:00:00 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2005, 12:08 |
|
||
|
DateTime + SQL + C++
|
|||
|---|---|---|---|
|
#18+
Вот пример (хоть и юзаеться ODBC)... lRet = ::SQLGetData(m_hstmt, nField, SQL_C_TIMESTAMP, &tsValue, sizeof(tsValue), &nValueLen); CheckAndThrowOPException(lRet, _FLT_, m_strQuery); if(pblIsNull != NULL) { *pblIsNull = (nValueLen == SQL_NULL_DATA); } if(nValueLen == SQL_NO_TOTAL) { ASSERT(FALSE); TCFireException(NULL, TCErrorDB().m_Recordset.FieldLengthMismatch(), _FLT_); } if(nValueLen != SQL_NULL_DATA) { rValue = CTime(tsValue.year, tsValue.month, tsValue.day, tsValue.hour, tsValue.minute, tsValue.second); } else { rValue = NULL; } ----------------- в последних строчках видно, что юзаеться CTime. Значения год, месяц и т.д. в твоём случае нужно будет распарсить и привести к значениям ручками. удачи Вам (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2005, 12:18 |
|
||
|
DateTime + SQL + C++
|
|||
|---|---|---|---|
|
#18+
получилось. вот так: case typeDateTime: { tagTIMESTAMP_STRUCT tim = *( tagTIMESTAMP_STRUCT *)(&_pData ); } break; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2005, 12:46 |
|
||
|
|

start [/forum/topic.php?fid=57&tid=2032932]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
51ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
27ms |
get tp. blocked users: |
1ms |
| others: | 217ms |
| total: | 325ms |

| 0 / 0 |
