Проблема приложения VC ++ с БД DATETIME с драйвером OLEDB через TLS 1.2 - PullRequest
0 голосов
/ 13 июня 2019

Наше приложение построено на технологии VC ++ MFC в Visual Studio 2008.

Мы использовали драйвер OLE DB для подключения к базе данных.

Для поддержки TLS 1.2 мы установили новый драйвер OLE DB 18.2 и изменили наш объект подключения с помощью MSSQLOLEDB.

Теперь наш сервис работает нормально, но мы столкнулись с проблемой SQL 22007 при выполнении существующей процедуры с полем DateTime.

m_pParamBindings[iParamCount].pwszDataSourceType=OLESTR("DBTYPE_DBTIMESTAMP");
m_pParamBindings[iParamCount].pwszName=OLESTR("@RSS_DAT");
m_pParamBindings[iParamCount].ulParamSize=sizeof(DBTIMESTAMP);    
m_pParamBindings[iParamCount].dwFlags=DBPARAMFLAGS_ISINPUT | DBPARAMFLAGS_ISOUTPUT;
m_pParamBindings[iParamCount].bPrecision=0;
m_pParamBindings[iParamCount].bScale=0;
m_pBindings[iParamCount].wType = DBTYPE_DBTIMESTAMP;  
m_pBindings[iParamCount].obValue = offsetof(IPC_MSG, Client.evt.dtRsstime);
m_pBindings[iParamCount].eParamIO = DBPARAMFLAGS_ISINPUT | DBPARAMFLAGS_ISOUTPUT;

Когда мы исследовали, я узнал, что это связано с дробной частью DateTime.

Нужна ваша ценная поддержка, чтобы устранить эту проблему поля Datetime.

Пожалуйста, не предлагайте обновиться до последней версии VC ++, для нас это задача Геркулеса.

Заранее спасибо.

...