Не получается записать дату(TIMESTAMP_STRUCT) в MSSQL server
От: Guard_h4s Россия  
Дата: 17.06.04 05:44
Оценка:
Пробую запустить следующий код (ODBC) C/C++, выдает следующую ошибку 22007: Неверный формаь даты и времени
Если меняю TIMESTAMP_STRUCT на DATE_STRUCT(и в SQLBindParameter тоже) то выдает HYC00: Дополнительная возможность не реализована. Формат поля в таблице: datetime(8). Помогите решить проблему.
Вот собственно код(выдернут из программы):
...
const char szStatement[]= "INSERT INTO Table VALUES (?,?,?)"
TIMESTAMP_STRUCT ts;
ZeroMemory(&ts,sizeof(TIMESTAMP_STRUCT));
SYSTEM_TIME time
GetSystemTime(&time);
ts.year = time.wYear;
ts.month = time.wMonth;
ts.day = time.wDay;

SQLAllocHandle(SQL_HANDLE_STMT, m_datasource, &m_handle);
SQLPrepare(m_handle, (SQLCHAR*)szStatement, size)

...
SQLBindParameter(m_handle,2,SQL_PARAM_INPUT,SQL_C_TYPE_TIMESTAMP,SQL_TYPE_TIMESTAMP,prec,0,&ts,0,0)
...

if(SQLExecute(m_handle)== SQL_ERROR)
{
char tmp_buf[512];

SQLGetDiagRec(SQL_HANDLE_STMT, m_handle, 1, state,(SQLINTEGER*)&err_no,err_string,(SQLINTEGER)128,(SQLSMALLINT*)&err_len);

wsprintf(tmp_buf,"ODBC Driver Error: %d in %s\nState is: %s\n %s",err_no, szPlace, state, err_string);
MessageBox(0,tmp_buf,"ODBC Error",0);
}

...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.