目前位置: VCer资源中心 >>> VCer论坛 >>> 技术问答

[本帖已阅读1920次 分值2 回复1次] 张贴资源 发回信箱 控制面板

VC插入数据总是错误,急,大家帮帮忙!!

提供者:jiangeb 张贴时间:2004-07-26 18:09:35.0 出处:vcer.net 作者:不祥

VC插入数据总是错误,急,大家帮帮忙!!(2004-07-26 18:09:35.0)


菠菜


 
级别: VCer小兵
头衔: VCer会员

经验: 107
作品: 3
分会: 西南分会
注册: 2004-07-26 18:06:58.0
登录: 2004-07-28 20:33:03.0

我用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

注:转载文章需注明来源:VCer.net 文章地址:http://vcer.net/2848.html

  如果你觉得VCer.net不错,而且你愿意为VCer.net捐赠一元钱,那么点击后面的捐赠按钮吧:) vcer.net捐赠

[回复该贴] [加入个人书签]

re:VC插入数据总是错误,急,大家帮帮忙!!

你的程序我没看,但是将一个long int(如:23)转换成一个String(如:“23”)不能使用类型转换,应该是用itoa或者sprintf、CString.Format等函数来转换。

这是C++语法基础概念。

bluejoe 于 2004-07-27 08:35:10.0 编辑 [回复该贴]