返回首页
当前位置: 主页 > Excel教程 > Excel VBA教程 >

ADO连接数据库字符串大全(VP,Excel,文本,Sybase,.NET等)(4)

时间:2012-06-17 02:06来源:Office教程学习网 www.office68.com编辑:麦田守望者

- 1433 is the default port number for SQL Server
- You can also add "Encrypt=yes" for encryption

For more information, see: Microsoft OLE DB Provider for SQL Server

 

Remote Data Service (RDS) Connections
The following examples show how to connect to a remote database using the RDS Data Control.
When using the RDS DataControl's Server/SQL/Connect properties, the RDS DataControl uses the
RDS DataFactory on the remote server. If you use the RDS DataControl's URL property,
then the RDS DataFactory is not used at all.

WARNING: The RDS DataFactory can be a major security hole if not setup and configured correctly!
For more information, see RDS FAQ #24

RDS DataControl - Connect Property
 
With the RDS default handler disabled (not recommend due to security risks):

With oRdc
  .Server = "http://carl2";
  .Sql = "Select * From Authors Where State = 'CA'"
  .Connect = "Provider=sqloledb;" & _
           "Data Source=(local);" & _
           "Initial Catalog=pubs;" & _
           "User Id=sa;" & _
           "Password=;"
  .Refresh
End With

With the RDS default handler enabled (recommend):

With oRdc
  .Server = "http://carl2";
  .Handler = "MSDFMAP.Handler"
  .Connect = "Data Source=MyConnectTag;"
  .Sql = "MySQLTag(""CA"")"
  .Refresh
End With

The corresponding CONNECT and SQL sections in the default handler \WINNT\MSDFMAP.INI file would be:

[connect MyConnectTag]
Access = ReadWrite
Connect = "Provider=sqloledb;Data Source=(local);Initial Catalog=pubs;User Id=sa;Password=;"

[sql MySQLTag]
Sql = "Select * From Authors Where State = '?'"

For more information about the RDS Default Handler, see:
Q243245, Q230680, and RDS Customization Handler Microsoft articles


RDS DataControl - URL Property
 
To get records from a remote database:

With oRdc
  .URL = "http://carlp0/Authors_GetByState.asp?state=CA";
  .Refresh
End With

To save, set the URL property to an ASP web page:

With oRdc
  .URL = "http://carlp0/rdsdatacontrol/Authors_Save.asp";
  .SubmitChanges
End With

For more information, see: RDS URL Property

 

ADO URL Connections
ADO 2.5+ allows you to open up a Recordset based on XML returned from an ASP file over HTTP. 
This feature doesn't use RDS at all.

ADO Recordset
 
To get records from a remote database:

oRs.Open "http://carlp0/Authors_GetByState.asp?state=CA";, , _
                      adOpenStatic, adLockBatchOptimistic

To save changes, you must use the MSXML's XMLHTTP object to POST back the updated XML. 
The Recordset's Update and UpdateBatch methods will not work in this case.

' Save Recordset into Stream
Set oStm = New ADODB.Stream
oRs.Save oStm, adPersistXML

' Use MSXML's XMLHTTP object to open ASP and post a XML stream
Set oXMLHTTP = New MSXML2.XMLHTTP30
oXMLHTTP.Open "POST", "http://carlp0/Authors_Save.asp";, False
oXMLHTTP.Send oStm.ReadText

' If an error occurred
If oXMLHTTP.Status = 500 Then
  Debug.Print oXMLHTTP.statusText
End If

For more information, see: ADO Recordset's Open Method

 

MS Remote Provider Connections
The following connections strings use Microsoft's remote provider (MS Remote). The MS Remote
provider tells ADO to communicate with the remote server (via the RDS DataFactory) and to use
the remote provider that is installed on the remote server.

WARNING: The RDS DataFactory can be a major security hole if not setup and configured correctly! 
For more information, see RDS FAQ #24
  

MS Remote - Access (Jet)
 
If you want to use an ODBC DSN on the remote machine:

oConn.Open "Provider=MS Remote;" & _
          "Remote Server=http://myServerName;" & _
          "Remote Provider=MSDASQL;" & _
          "DSN=AdvWorks;" & _
          "Uid=myUsername;" & _
          "Pwd=myPassword;"

If you want to use an OLE DB Provider on the remote machine:

oConn.Open "Provider=MS Remote;" & _
          "Remote Server=http://myServerName;" & _
          "Remote Provider=Microsoft.Jet.OLEDB.4.0;" & _
          "Data Source=c:\somepath\mydb.mdb;", _
          "admin", ""

If you want to use an OLE DB Provider on the remote machine (via RDS DataFactory Default Handler):

oConn.Open "Provider=MS Remote;" & _
          "Remote Server=http://myServerName;" & _
          "Handler=MSDFMAP.Handler;" & _
          "Data Source=MyAdvworksConn;"

The corresponding entry in the \winnt\Msdfmap.ini file would be:

[connect MyAdvworksConn]
Access = ReadWrite
Connect = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
        "Data Source=mydb.mdb;" & _
        "User Id=admin;" & _
        "Password=;"
 

MS Remote - SQL Server
 
If you want to use an ODBC DSN on the remote machine:

oConn.Open "Provider=MS Remote;" & _
          "Remote Server=http://myServerName;" & _
          "Remote Provider=MSDASQL;" & _
          "DSN=myDatabaseName;" & _
          "Uid=myUsername;" & _
          "Pwd=myPassword;"

If you want to use an OLE DB Provider on the remote machine:

oConn.Open "Provider=MS Remote;" & _
          "Remote Server=http://myServerName;" & _
          "Remote Provider=SQLOLEDB;" & _
         "Data Source=myServerName;" & _
         "Initial Catalog=myDatabaseName;" & _
         "User ID=myUsername;" & _
          "Password=myPassword;"

If you want to use an OLE DB Provider on the remote machine (via RDS DataFactory Default Handler):

oConn.Open "Provider=MS Remote;" & _
          "Remote Server=http://myServerName;" & _
          "Handler=MSDFMAP.Handler;" & _
          "Data Source=MyPubsConn;"

The corresponding entry in the \winnt\Msdfmap.ini file would be:

[connect MyPubsConn]
Access = ReadWrite
Connect = "Provider=SQLOLEDB;" & _
        "Data Source=myServerName;" & _
        "Initial Catalog=myDatabaseName;" & _
        "User ID=myUsername;" & _
        "Password=myPassword;"

For more information, see: Microsoft OLE DB Remoting Provider  and Q240838

 

Data Shape Provider Connections
MS DataShape - SQL Server
 
oConn.Open "Provider=MSDataShape;" & _
          "Data Provider=SQLOLEDB;" & _
          "Data Source=mySQLServerName;" & _

------分隔线----------------------------
标签(Tag):excel excel2007 excel2010 excel2003 excel技巧 excel教程 excel实例教程 excel2010技巧
------分隔线----------------------------
推荐内容
猜你感兴趣