用什么方法连SQL?
应该是程序自身问题.连接插入不是问题

解决方案 »

  1.   

    #import "C:\Program files\common files\system\ado\msado15.dll" no_namespace rename("EOF", "adoEOF")
    _ConnectionPtr m_pConnection;
    _RecordsetPtr m_pRecordset;
    int CSQLDataBase::ConnectDataBase()
    {
    if(!inti())
    return -1;
    CloseDataBase(); try
    {
    CString sql;
    if(m_DBinf.Type == 0) //sql
    {
    sql.Format("driver={SQL Server}; Server=%s; DATABASE=%s; UID=%s; PWD=%s", 
    m_DBinf.IPad, m_DBinf.Source, m_DBinf.UId, m_DBinf.password);
    }
    else if(m_DBinf.Type == 1) //access
    {
    sql.Format("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=%s;", m_DBinf.Source);
    }
    else
    {
    MessageBox(NULL, "在使用 CMyDataBase类时输入了错误的数据库类型", "错误", MB_OK );
    return -2;
    } HRESULT hResult = m_pConnection.CreateInstance(__uuidof(Connection));
    m_pConnection->ConnectionTimeout = 5; //连接等待时间.
    if(SUCCEEDED(hResult))
    {
    if(m_DBinf.Type == 0)
    {
    //m_pConnection->Open((_bstr_t)sql, "", "", adModeUnknown); //密码已经包含在sql中.
    if ( !SUCCEEDED( m_pConnection->Open( _bstr_t( sql ), "", "", adModeUnknown )))
    {
    return FALSE;
    }
    }
    else
    {
    m_pConnection->Open((_bstr_t)sql, (_bstr_t)m_DBinf.UId, (_bstr_t)m_DBinf.password, -1);
    }
    }
    }
    catch(_com_error e)
    {
    m_DBinf.Type == 0 ? MessageBox(NULL, "连接远程数据库失败", "错误", MB_OK)
    : MessageBox(NULL, "本地数据库连接失败,确认本地数据库是否在当前路径下!", "错误", MB_OK);
    return FALSE;
    } CreateToDataBaseRecordSet(); MessageBox( NULL, "数据库连接成功", "提示", MB_OK ); return TRUE;
    }
    这是连续数据库代码