这个数据库在ip:10.30.16.29的机器上
数据库类型:oracleusername:kxbariiipassword:stepiiidatebase:STEPDEVE_10.30.16.29表名:KXBARIII.BOARD_CHECKWELD

解决方案 »

  1.   

    bool OpenDBInstance( char *pProvider, char *pSource, char *pUserID, char *pPassWd )
    {
    m_pConn = NULL; _bstr_t strDBConnection =  "Provider=";
    strDBConnection += pProvider;
    strDBConnection += ";Data Source=";
    strDBConnection += pSource;
    strDBConnection += ";User ID=";
    strDBConnection += pUserID;
    strDBConnection += ";Password=";
    strDBConnection += pPassWd;
    strDBConnection += ";";
    try
    {
    // 创建连接接口
    if( NULL == m_pConn )
    {
    if( FAILED( m_pConn.CreateInstance( __uuidof( Connection ) ) ) ) // 产生一个实例。
    {
    m_pConn = NULL;
    AfxMessageBox("创建数据库连接接口失败");
    return false;
    }
    }
    // 打开连接
    if( FAILED( m_pConn->Open( strDBConnection, "", "", adModeUnknown ) ) )
    {
    return false;
    }

    m_pConn->CursorLocation = adUseClient; }
    catch( _com_error& e ) // 捕捉异常
    {
    _bstr_t desc = e.Description();
    _bstr_t source = e.Source(); CString strMsg;
    strMsg.Format( "建立数据库连接时发生错误:%s,原因:%s,描述:%s!", 
    (char*)source, (char*)desc );
    strMsg += "\n"; return false;
    }
    return true;
    }
      

  2.   

    if( m_pConn == NULL )
    {
    return false;
    }

    bool bRes = false;
    _variant_t vt;
    _RecordsetPtr pRecordset = NULL;
    // 创建Recordset实例
    pRecordset.CreateInstance(  __uuidof( Recordset ) );
    if( NULL == pRecordset )
    {
    return false;
    }

    _bstr_t strCount = "select * from T_USER where F_USERNAME = '";
    strCount += pUserName;
    strCount += "'";
    strCount += " and F_PASSWORD='";
    strCount += pOldPwd;
    strCount += "'";
    try
    {
    // 打开记录集
    pRecordset->Open(_variant_t( strCount ), 
    m_pConn.GetInterfacePtr(),
    adOpenDynamic, 
    adLockOptimistic, 
    adCmdText );

    if( pRecordset->adoEOF || pRecordset->adoBOF ) // 无任务
    {
    AfxMessageBox( "用户验证失败" ) ;
    bRes = false;
    }
    else
    {
    vt.vt = VT_BSTR;
    CString m_newpwd = pNewPwd ;
    vt.bstrVal = m_newpwd.AllocSysString() ;
    pRecordset->PutCollect( "F_PASSWORD", vt );
    pRecordset->Update() ;
    pRecordset->Close();
    pRecordset.Release();
    return TRUE ;
    }
    // 关闭记录集
    pRecordset->Close();
    pRecordset.Release();
    }
    catch( _com_error& e )
    {
    _bstr_t desc = e.Description();
    _bstr_t source = e.Source();

    CString strMsg;
    strMsg.Format( "操作员登陆认证时发生错误:%s,原因:%s,描述:%s!", 
    (char*)source, (char*)desc );
    bRes = false;
    }

    // 释放记录集资源
    pRecordset.Release();
    return bRes;