Note: - xxx.xxx.xxx.xxx is an IP address - "Network Library=DBMSSOCN" tells OLE DB to use TCP/IP rather than Named Pipes (Q238949) - 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:
[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.
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:
Then use a Shape command with SQL strings: sSQL = "SHAPE {select * from authors} " & _ "APPEND ({select * from titleauthor} AS chapter " & _ "RELATE au_id TO au_id)"
Or use a Shape command that calls Stored Procedures: sSQL = "SHAPE {exec spAuthors_LoadAll} " & _ "APPEND ({exec spTitleAuthor_LoadAll} AS chapter " & _ "RELATE au_id TO au_id)"
For more information, see: Microsoft Data Shaping Service for OLE DB and Q288409
The SQL Client .NET Managed Provide allows you to connect to a Microsoft SQL Server 7.0 or 2000 database. For Microsoft SQL Server 6.0 or earlier, use the OLE DB .NET Data Provider with the "SQL Server OLE DB Provider" (SQLOLEDB).
Dim oSQLConnection As SqlClient.SqlConnection Dim sConnString As String
For more information, see: System.Data.SQL Namespace and .NET Data Providers Note: ''''SQL'''' namespace got renamed to ''''SQLClient''''
OLE DB .NET Managed Provider (System.Data.OleDb)
The OLE DB .NET Data Provider uses native OLE DB through COM interop to enable data access. To use the OLE DB .NET Data Provider, you must also use an OLE DB provider (e.g. SQLOLEDB, MSDAORA, or Microsoft.JET.OLEDB.4.0).
For SQL Server OLE DB Provider (for SQL Server 6.0 or earlier)
Dim oOleDbConnection As OleDb.OleDbConnection Dim sConnString As String