#import "C:/Program Files/Common Files/System/ado/msado15.dll" no_namespace rename("EOF","adoEOF"), rename("BOF","adoBOF")这个是我引用的库请大家帮忙看下,到底怎么回事,我本地用PL/SQL develope 都是好的

解决方案 »

  1.   

    可以用ADO助手试试你的数据库连接字符串和SQL语句。
      

  2.   

    用ADO助手后,执行插入SQL 文还是卡主,程序无响应。
    执行删除SQL文 可以执行成功,但影响行数是0,应该删除掉表全部的行的。以上同样的sQL文在PL/SQL developer 中都可以正确执行。
      

  3.   

    试一下吧:
    void COracleTestDlg::OnBnClickedButton3()
    {
    // TODO: 在此添加控件通知处理程序代码 if ( CoInitialize( NULL ) != S_OK )
    {
    AfxMessageBox( _T( "初始化Com库失败!" ) );
    return;
    } _ConnectionPtr a_pConnection;
    _RecordsetPtr a_pRecordset;
    _variant_t vNull;
    try
    {
    // 初始化Connection 指针  
    a_pConnection.CreateInstance(__uuidof(Connection));
    // 初始化Recordset 指针
    a_pRecordset.CreateInstance(__uuidof(Recordset));
    // 连接数据库
    CString strCon = "Provider=OraOLEDB.Oracle.1; Password=admin; User ID=system; Data Source=10.10.0.172/test111; Persist Security Info=True";
    a_pConnection->Open(strCon.AllocSysString(), "", "", adModeUnknown);
    }
    catch(_com_error e)
    {
    CString errormessage;
    errormessage.Format(_T("数据库连接失败!\r\n错误信息:%s"), e.ErrorMessage());
    AfxMessageBox(errormessage);
    //CoUninitialize();
    return ;
    }
    ///////////////////////////////////////////////
    try
    {
    CString strSql = _T("delete from mac_info_01");
    _bstr_t strCmd = strSql;
    a_pRecordset = a_pConnection->Execute(strCmd,&vNull,adCmdText);
    //a_pCommand->Execute(&vNULL, &vNULL, adCmdText); // 执行到这块就无响应
    return;
    }
    catch(_com_error e)
    {
    e.Description();
    AfxMessageBox(e.ErrorMessage());
    return;
    }
    }
      

  4.   

    Oracle 10 我调试的时候,第一次可以插入进去数据,
    第二次,就卡死在那里了,会不会因为没有关闭连接造成的。
      

  5.   

    同样的程序,我在Oracle中新建了一个用户,这个问题就好了,但不知道为什么用system 这个用户就会出现这种卡主的情况。
      

  6.   

    if ( CoInitialize( NULL ) != S_OK )
    这个移到外面去,不要每次按键都进行初始化
      

  7.   

    我的问题解决了,原因不清楚,可能是system 用户的原因吧