ODBC数据源,配置系统数据源,选择SQL SERVER,在想与哪一个服务器连接时输入IP地址,当然你得安装TCP/IP协议

解决方案 »

  1.   

    设置服务器SQL Server启用TCP/IP协议(在SQL Server的"SQL Server服务器网络实用工具"中添加)
      

  2.   

    我的SQL SERVER 已有TCP/IP,PORT :1433还是连不上。
      

  3.   

    1建立一个数据源
    2建立RDO对象
    3通过连接字符串访问。
    出处:www.csdn.net连接数据库查询手册(不仅仅适用于asp)(ghj1976 转贴)
    出处:http://www.active.com.cn
    正文:
    下面将简单介绍一下几种ADO连接方式:ODBC DSN,ODBC DSN-Less, 
    OLE DB Provider,和"MS Remote" Provider.
    1。ODBC DSN连接
    I.DSN
        oConn.Open "DSN=AdvWorks;" & _ 
            "UID=Admin;" & _ 
            "PWD=;"
    注意:从MDAC2.1开始就不能够在使用这样的方式了,就是只把DSN文件名放在ConnectString中
          你必须同时使用DSN,UID,PWD标志。例如下面的方式在MDAC 2.1中将会出错:
        oConn.Open "AdvWorks"II.File DSN
        oConn.Open "FILEDSN=\somepath\mydb.dsn;" & _ 
            "UID=Admin;" & _
            "PWD=;"
    III.ODBC DSN-Less Connections
    a)ODBC Text Driver
        oConn.Open _
            "Driver={Microsoft Text Driver (*.txt; *.csv)};" & _
            "Dbq=\somepath\;" & _
            "Extensions=asc,csv,tab,txt;" & _
            "Persist Security Info=False"
    注意:需要在SQL语句中指定使用到的文件名。例如:
        oRs.Open "Select * From customer.csv", _
            oConn, adOpenStatic, adLockReadOnly, adCmdText
    b)ODBC Driver for Access
        i)普通安全模式:
            oConn.Open _
                "Driver={Microsoft Access Driver (*.mdb)};" & _ 
                "Dbq=\somepath\mydb.mdb;" & _
                "Uid=Admin;" & _
                "Pwd=;"
        ii)如果使用了System database:
            oConn.Open _
                "Driver={Microsoft Access Driver (*.mdb)};" & _ 
                "Dbq=\somepath\mydb.mdb;" & _
                "SystemDB=\somepath\mydb.mdw;", _
                "admin", ""
    c)ODBC Driver for SQL Server
        i)普通安全模式
            oConn.Open "Driver={SQL Server};" & _ 
                "Server=carl2;" & _
                "Database=pubs;" & _
                "Uid=sa;" & _
                "Pwd=;"
        ii)使用信任安全模式:
            oConn.Open "Driver={SQL Server};" & _ 
                "Server=carl2;" & _
                "Database=pubs;" & _
                "Uid=;" & _
                "Pwd=;"
        注意:要使用空白的Uid和Pwd          
    d)ODBC Driver for Oracle
        i)使用现有的Oracle ODBC Driver from Microsoft:
            oConn.Open _
                "Driver={Microsoft ODBC for Oracle};" & _
                "Server=OracleServer.world;" & _
                "Uid=demo;" & _
                "Pwd=demo;"
        ii)使用老版本的Oracle ODBC Driver from Microsoft:
            oConn.Open _
                "Driver={Microsoft ODBC Driver for Oracle};" & _
                "ConnectString=OracleServer.world;" & _
                "Uid=demo;" & _
                "Pwd=demo;"
    IIII)使用微软的OLE DB Data Link Connections方式Data Link File (UDL)
    a)使用绝对路径
        oConn.Open "File Name=\somepath\pubs.udl;" 
    b)使用相对路径
        oConn.Open "File Name=pubs.udl;" 
    V)OLE DB Provider Connections方式
    a)OLE DB Provider for ODBC Databases
        i)Access (Jet):
            oConn.Open _
                "Provider=MSDASQL;" & _ 
                "Driver={Microsoft Access Driver (*.mdb)};" & _
                "Dbq=\somepath\mydb.mdb;" & _
                "Uid=Admin;" & _
                "Pwd=;"
        ii)SQL Server:
            oConn.Open _
                "Provider=MSDASQL;" & _  
                "Driver={SQL Server};" & _
                "Server=carl2;" & _
                "Database=pubs;" & _
                "Uid=sa;" & _
                "Pwd=;"
    b)OLE DB Provider for Microsoft Jet  (Access)
        i)普通安全模式:
            oConn.Open _
                "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                "Data Source=\somepath\mydb.mdb;" & _ 
                "User Id=admin;" & _
                "Password=;"
        ii)如果使用了System database:
            oConn.Open _
                "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                "Data Source=\somepath\mydb.mdb;" & _ 
                "Jet OLEDB:System Database=system.mdw;", _
                "admin", "" 
        注意:当使用OLE DB Provider4.0版本是,需要把MDB和MDW文件转换成4.0的数据库格式
        iii)如果MDB需要一个数据库密码的话:
            oConn.Open _
                "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                "Data Source=\somepath\mydb.mdb;" & _ 
                "Jet OLEDB:Database Password=MyDbPassword;", _
                "admin", ""
    c)OLE DB Provider for Excel Spreadsheet: 
            oConn.Open _
                "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                "Data Source=\somepath\expenses.xls;" & _
                "Extended Properties=""Excel 8.0;HDR=Yes;"";" 
        注意: "HDR=Yes"表示在第一行中是行标题,在provider中将不把第一行包括入recordset中
    d)OLE DB Provider for SQL Server
        i)普通安全模式:
            oConn.Open "Provider=sqloledb;" & _ 
                "Network Library=DBMSSOCN;" & _
                "Data Source=carl2;" & _
                "Initial Catalog=pubs;" & _
                "User Id=sa;" & _
                "Password=;"
        ii)使用信任安全模式:
            oConn.Open "Provider=sqloledb;" & _
                Network Library=DBMSSOCN;" & _
                "Data Source=carl2;" & _
                "Initial Catalog=pubs;" & _
                "Trusted_Connection=yes;"
        注意:"Network Library=DBMSSOCN"声明OLE DB使用TCP/IP替代Named Pipes.
    e)OLE DB Provider for Oracle
        oConn.Open "Provider=msdaora;" & _
            "Data Source=OracleServer.world;" & _ 
            "User Id=sa;" & _
            "Password=;"
    (VI)Remote OLE DB Provider Connections方式(就是我一直在研究的RDS方式哦,呵呵。):
    a)MS Remote - Access (Jet)
        i)ODBC DSN:
            oConn.Open "Remote Server=http://carl2;" & _ 
                "Remote Provider=MSDASQL;" & _
                "DSN=AdvWorks;" & _
                "Uid=admin" & _
                "Pwd=;" 
        ii)OLE DB Provider:
            oConn.Open "Provider=MS Remote;" & _ 
                "Remote Server=http://carl2;" & _
                "Remote Provider=Microsoft.Jet.OLEDB.4.0;" & _
                "Data Source=\somepath\mydb.mdb;", _
                "admin", ""
        iii)OLE DB Provider自定义事务对象
            oConn.Open "Provider=MS Remote;" & _ 
                "Remote Server=http://carl2;" & _
                "Handler=MSDFMAP.Handler;" & _
                "Data Source=MyAdvworksOLEDBConnectTag;"
    b)MS Remote - SQL Server
        i)ODBC DSN:
            oConn.Open "Remote Server=http://carl2;" & _ 
                "Remote Provider=MSDASQL;" & _
                "Network Library=DBMSSOCN;" & _
                "DSN=Pubs;" & _
                "Uid=sa" & _
                "Pwd=;" 
        ii)OLE DB Provider
            oConn.Open "Provider=MS Remote;" & _ 
                "Remote Server=http://carl2;" & _
                "Remote Provider=SQLOLEDB;" & _
                "Network Library=DBMSSOCN;" & _
                "Data Source=carl2;" & _
                "Initial Catalog=pubs;" & _
                "User ID=sa;" & _
                "Password=;"
      

  4.   

    上面的是很详细,也很有用,可我需要ATL连接的OLE DB 模式,而不是ADO,不过最后我会给分的,谢谢
      

  5.   

    是用OLE DB CONSUMER 方式
      

  6.   

    给你一个列子吧。1、纯SDK 模式
    void InitializeAndEstablishConnection()
    {    
        //Initialize the COM library.
        CoInitialize(NULL);    //Obtain access to the SQLOLEDB provider.    
        hr = CoCreateInstance(
                        CLSID_SQLOLEDB, 
                        NULL, 
                        CLSCTX_INPROC_SERVER,
                        IID_IDBInitialize, 
                        (void **) &pIDBInitialize);
        if (FAILED(hr))
        {
            cout << "Failed in CoCreateInstance().\n";
        }    /*
        Initialize the property values needed
        to establish the connection.
        */
        for(i = 0; i < nInitProps; i++)
            VariantInit(&InitProperties[i].vValue);
        //Specify server name.
        InitProperties[0].dwPropertyID = DBPROP_INIT_DATASOURCE;
        InitProperties[0].vValue.vt = VT_BSTR;
        InitProperties[0].vValue.bstrVal = 
                                    SysAllocString(L"127.0.0.1");
        InitProperties[0].dwOptions = DBPROPOPTIONS_REQUIRED;
        InitProperties[0].colid = DB_NULLID;    //Specify database name.
        InitProperties[1].dwPropertyID = DBPROP_INIT_CATALOG;
        InitProperties[1].vValue.vt = VT_BSTR;
        InitProperties[1].vValue.bstrVal = 
                                    SysAllocString(L"pubs");
        InitProperties[1].dwOptions = DBPROPOPTIONS_REQUIRED;
        InitProperties[1].colid = DB_NULLID;    //Specify username (login).
        InitProperties[2].dwPropertyID = DBPROP_AUTH_USERID; 
        InitProperties[2].vValue.vt = VT_BSTR;
        InitProperties[2].vValue.bstrVal = 
                                    SysAllocString(L"sa");
        InitProperties[3].dwOptions = DBPROPOPTIONS_REQUIRED;
        InitProperties[3].colid = DB_NULLID;    //Specify password.
        InitProperties[3].dwPropertyID = DBPROP_AUTH_PASSWORD;
        InitProperties[3].vValue.vt = VT_BSTR;
        InitProperties[3].vValue.bstrVal = SysAllocString(L"lovevc++");
        InitProperties[3].dwOptions = DBPROPOPTIONS_REQUIRED;
        InitProperties[3].colid = DB_NULLID;    /*
        Now that properties are set, construct the DBPROPSET structure
        (rgInitPropSet).  The DBPROPSET structure is used to pass an array
        of DBPROP structures (InitProperties) to the SetProperties method.
        */
        rgInitPropSet[0].guidPropertySet = DBPROPSET_DBINIT;
        rgInitPropSet[0].cProperties = 4;
        rgInitPropSet[0].rgProperties = InitProperties;    //Set initialization properties.
        hr = pIDBInitialize->QueryInterface(
                                    IID_IDBProperties, 
                                    (void **)&pIDBProperties);
        if (FAILED(hr))
        {
            cout << "Failed to obtain IDBProperties interface.\n";
        }    hr = pIDBProperties->SetProperties(
                                    nPropSet, 
                                    rgInitPropSet);
        if(FAILED(hr))
        {
            cout << "Failed to set initialization properties.\n";
        }
        pIDBProperties->Release();    //Now establish a connection to the data source.
        if(FAILED(pIDBInitialize->Initialize()))
        {
            cout << "Problem in initializing.\n";
        }
    } //end of InitializeAndEstablishConnection.2、ATL 模式
      不用我说了吧,用CDataSource,然后把上面相应的属性通过CDBPropSet添加进去就OK了。哈哈