如题,谢谢各位高手给解答,最好给点代码!

解决方案 »

  1.   

    ODBC Driver for SQL Server 
      
    For Standard Security:oConn.Open "Driver={SQL Server};" & _ 
              "Server=MyServerName;" & _
             "Database=myDatabaseName;" & _
             "Uid=myUsername;" & _
              "Pwd=myPassword;"
    http://www.codeproject.com/useritems/ConnectionStrings.asp
      

  2.   

    ADO
    //connect romote computer
    ConnectionPtr m_conn; HRESULT hr;
    hr=m_conn.CreateInstance(__uuidof(Connection));
    if(!SUCCEEDED(hr))
    AfxMessageBox("创建连接失败");
    sql="provider=SQLOLEDB;Data Source=127.0.0.1;Initial Catalog=yourDB;User ID=sa;Password=";
    try
    {
    hr=m_conn->Open(_bstr_t(sql),"","",adModeUnknown);
    if(SUCCEEDED(hr))
    m_bconn=true;
    else
    {
    m_bconn=false;
    return false;
    }
    }
    catch (_com_error &e) // Any errors?
    {

    // Display the error
    CString strError;
    strError.Format("连接时出错: '%d (%x)'",e.Error(),e.Error() );
    strError +="\n";
    strError +=e.Description();
    AfxMessageBox("连接数据库失败\n"+strError);
    return FALSE;
    }
      

  3.   

    hr = m_pConnection->Open("Driver={SQL Server};Server=192.168.0.159;DATABASE=1111;UID=sa;PWD=55558913","","",adModeUnknown);
    注意替换上面的一些数据就可以,远程连接SQL要采用混合验证模式
      

  4.   

    这是我的实际例子,看是否可以参考
    在cpp文件头应该包含如下:
    #define INITGUID
    #import "F:\Program Files\Common Files\System\ado\msado15.dll" rename_namespace("ADOCG") rename("EOF","EndOfFile")
    using namespace ADOCG;
    #include "icrsint.h"
    注意盘符
    HRESULT hr;
    hr=pConn->Open(_com_util::ConvertStringToBSTR("Provider=SQLOLEDB.1;Data Source="+hostname)
    ,_com_util::ConvertStringToBSTR(username),_com_util::ConvertStringToBSTR(psw),-1);
    if(FAILED(hr))
    ::CoUninitialize();
    _variant_t vRowsAffected,sql;
    CString ss;
    ss="SELECT * FROM ";
    ss+=Table;
    sql=ss;
    pRs->Open(sql,_variant_t((IDispatch *)pConn,true),
    adOpenDynamic, adLockOptimistic, adCmdUnknown);
    FieldsPtr fields;
    fields=pRs->GetFields();
    m_Grid->SetRowCount(fields->Count+1);
    long i;
    try{
    for(i=0;i<fields->Count;i++)
    {
    _variant_t no,value;
    no=i;
    value=fields->GetItem(no)->GetName();
    Item.mask = GVIF_TEXT|GVIF_FORMAT|GVIF_STATE;
    Item.nFormat = DT_CENTER|DT_VCENTER|DT_SINGLELINE|DT_END_ELLIPSIS;
    Item.state=GVIS_READONLY;
    Item.row = i+1;
    Item.col = 0;
    Item.szText=value.bstrVal;
    m_Grid->SetItem(&Item);
    value=fields->GetItem(no)->GetDefinedSize();
    Item.row = i+1;
    Item.col = 2;
    Item.szText.Format("%ld",value.intVal);
    m_Grid->SetItem(&Item);
    }
    }
    catch(_com_error &e)
    {
    AfxMessageBox(e.ErrorMessage());
    }
      

  5.   

    在cpp文件头应该包含如下:
    #define INITGUID
    #import "F:\Program Files\Common Files\System\ado\msado15.dll" rename_namespace("ADOCG") rename("EOF","EndOfFile")
    using namespace ADOCG;
    #include "icrsint.h"
    注意盘符
    HRESULT hr;
    hr=pConn->Open(_com_util::ConvertStringToBSTR("Provider=SQLOLEDB.1;Data Source="+hostname)
    ,_com_util::ConvertStringToBSTR(username),_com_util::ConvertStringToBSTR(psw),-1);
    if(FAILED(hr))
    ::CoUninitialize();
    _variant_t vRowsAffected,sql;
    CString ss;
    ss="SELECT * FROM ";
    ss+=Table;
    sql=ss;
    pRs->Open(sql,_variant_t((IDispatch *)pConn,true),
    adOpenDynamic, adLockOptimistic, adCmdUnknown);
    FieldsPtr fields;
    fields=pRs->GetFields();
    m_Grid->SetRowCount(fields->Count+1);
    long i;
    try{
    for(i=0;i<fields->Count;i++)
    {
    _variant_t no,value;
    no=i;
    value=fields->GetItem(no)->GetName();
    Item.mask = GVIF_TEXT|GVIF_FORMAT|GVIF_STATE;
    Item.nFormat = DT_CENTER|DT_VCENTER|DT_SINGLELINE|DT_END_ELLIPSIS;
    Item.state=GVIS_READONLY;
    Item.row = i+1;
    Item.col = 0;
    Item.szText=value.bstrVal;
    m_Grid->SetItem(&Item);
    value=fields->GetItem(no)->GetDefinedSize();
    Item.row = i+1;
    Item.col = 2;
    Item.szText.Format("%ld",value.intVal);
    m_Grid->SetItem(&Item);
    }
    }
    catch(_com_error &e)
    {
    AfxMessageBox(e.ErrorMessage());
    }
      

  6.   

    试试下面的步骤
    其中
    strSQL="Provider=SQLOLEDB;Server=Gooyan;DataBase=SkillsBox;UID=sa;PWD=aaaaaaaa";
    Server = Gooyan改成远程IP1.stdafx.h中加入
    #import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF") 
    2。app文件的InitInstance中加入
    if(S_OK!=OleInitialize(NULL))
    {
    AfxMessageBox("初始化COM组件库错误");
    }
    下面就是数据库操作
    _ConnectionPtr pConn;
    _RecordsetPtr  pRs;
    CString strSQL;
    pConn.CreateInstance(__uuidof(Connection));
    pConn->CursorLocation=adUseClient;
    strSQL="Provider=SQLOLEDB;Server=Gooyan;DataBase=SkillsBox;UID=sa;PWD=aaaaaaaa";
    pConn->Open(_bstr_t(strSQL),"","",-1);

    pRs.CreateInstance(__uuidof(Recordset));
    pRs->CursorLocation=adUseClient;
    pRs->PutActiveConnection(pConn.GetInterfacePtr());

    pRs1.CreateInstance(__uuidof(Recordset));
    pRs1->CursorLocation=adUseClient;
    pRs1->PutActiveConnection(pConn.GetInterfacePtr()); strSQL="select * from catalog order by cataid";
    pRs->Open(_bstr_t(strSQL),vtMissing,adOpenDynamic,adLockBatchOptimistic,adCmdText);
      

  7.   

    strSQL="Provider=SQLOLEDB;Server=Gooyan;DataBase=SkillsBox;UID=sa;PWD=aaaaaaaa";Server写成IP,内网得可以是机器名。