本帖最后由 beforelily 于 2009-06-08 15:20:14 编辑

解决方案 »

  1.   

    半天就没人回,。。
    csdn没有牛人了吗
      

  2.   

    正确的方法是在程序中捕获错误,然后分析原因。try
    {
      ...
    }
    catch(_com_error e)
    {
      MessageBox( e.Description() );
    }经验分析:SQL 语句中可能有关键字。
      

  3.   

    “SQL 语句中可能有关键字。”这是什么意思?能不能说清楚一些啊?
    另外,根据楼上的大侠,e = 1891232。
    但并没有捕捉到错误,因为不走“  MessageBox( e.Description() ); ”里面
      

  4.   

    捕捉并输出ADO异常原因 try
    {
    //访问数据库语句;
    }
    catch (_com_error &e)
    {//输出异常原因
    #ifndef _DEBUG
    MessageBox(NULL,e.Description(),_T("AdoError"),MB_OK);
    #else
    AfxTrace("Error:At Line %d\n",__LINE__);
    AfxTrace("Code = %08lx\n", e.Error());
    AfxTrace("Meaning = %s\n", e.ErrorMessage());
    AfxTrace("Source = %s\n", (LPCSTR) e.Source());
    AfxTrace("Description = %s\n", (LPCSTR) e.Description());
    #endif
    }
      

  5.   


    “并不是这个问题啊啊啊”,
    因为我之前所有的访问数据库语句都已经加入try…catch…语句进行捕捉;
    根本就没有捕捉到错误,
    而且,sql server有一个工具可以跟踪数据库语句,从那里得到完整的sql语句之后,
    放入分析器中是可以执行成功的,而且还查到一条数据!!这叫怎么回事啊,有没有同志遇到过这种情况?
      

  6.   

    是不是你这个SQL语句特别呀,能贴出来看看么
      

  7.   


    sql语句很长...而且不方便贴出,但和其他可以正常执行的语句的语法都是一样的,完全没有特殊的语句。