我正在尝试使用ODBC bcp扩展将数据批量复制到带有DATETIME列的SQL Server 2008 R2表中。是否存在从常见的C / C ++结构time_t
或struct tm
转换为DBDATETIME结构的实用方法。
它被定义为笨重的:
typedef struct dbdatetime
{ // Internal representation of DATETIME data type
LONG dtdays; // No of days since Jan-1-1900 (maybe negative)
ULONG dttime; // No. of 300 hundredths of a second since midnight
} DBDATETIME;
在调用bcp_sendrow之前需要进行数据按摩。如果我可以将转换负载推送到服务器而不是我的应用程序,那将是很好的。
即使能够做这样的事也会很好:
const char* charDT= "1923-11-21 06:50:40";
bcp_bind(hdlDbc, (LPCBYTE) charDT, 0, sizeof(DBDATETIME), 0, 0, SQLDATETIME, 11)
但是我在bcp_sendrow“列的无效数据”中遇到错误。有什么想法吗?
答案 0 :(得分:0)
试试这个:
const char* charDT= "19231121 06:50:40";
bcp_bind(hdlDbc, (LPCBYTE)charDT, 0, SQL_VARLEN_DATA, (LPCBYTE)pTerminator, iLenTerminator, SQLVARCHAR, 11);