我用ODBC函数访问sqlserver数据库,不知道怎样inser int和datetime类型的数据,下面是程序,大家能帮忙看一下吗,我很急!!
rc=SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&henv);
if(rc==SQL_SUCCESS||rc==SQL_SUCCESS_WITH_INFO)
{
rc=SQLSetEnvAttr(henv,SQL_ATTR_ODBC_VERSION,(SQLPOINTER)SQL_OV_ODBC3,0);
if(rc==SQL_SUCCESS||rc==SQL_SUCCESS_WITH_INFO)
{
rc=SQLAllocHandle(SQL_HANDLE_DBC,henv,&hdbc);
if(rc==SQL_SUCCESS||rc==SQL_SUCCESS_WITH_INFO)
{
rc=SQLConnect(hdbc,(SQLCHAR*)"news71",SQL_NTS,(SQLCHAR*)"sa",SQL_NTS,(SQLCHAR*)"onto",SQL_NTS);
if(rc==SQL_SUCCESS||rc==SQL_SUCCESS_WITH_INFO)
{
SQLAllocHandle(SQL_HANDLE_STMT,hdbc,&hstmt);
SQLSetStmtAttr(hstmt,SQL_ATTR_CURSOR_TYPE,(SQLCHAR*) SQL_CURSOR_DYNAMIC,SQL_IS_INTEGER);
SQLSetStmtAttr(hstmt,SQL_ATTR_CONCURRENCY,(SQLCHAR*)SQL_CONCUR_LOCK,SQL_IS_UINTEGER);
上面都没有问题
SQLCHAR sQuery1[]="insert into newstest(ID,sTitle) values(?,?)";
rc=SQLPrepare(hstmt,sQuery1,SQL_NTS);
if(rc==SQL_SUCCESS||rc==SQL_SUCCESS_WITH_INFO)
{
unsigned long nid;
表里的ID是一个序列号,是int类型,作为主键,这里不知道这么设变量是否正确
char ntitle[150];
SQLBindParameter(hstmt,1,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,150,0,ntitle,sizeof(ntitle),0);
SQLBindParameter(hstmt,2,SQL_PARAM_INPUT,SQL_C_ULONG,SQL_INTEGER,0,0,&nid,sizeof(nid),0);
这里不知道这么绑定参数是否正确
strcpy(ntitle,(LPCSTR)newstitle[i].Left(150));
strcpy(nid,(LPCSTR)id);
这里不知道应该怎样写赋值给nid