Microsoft KB Archive/245359: Difference between revisions
(importing KB archive) |
m (Text replacement - """ to """) |
||
Line 65: | Line 65: | ||
You use an absolute URL for the connection. | You use an absolute URL for the connection. | ||
<pre class="codesample">connection.Open | <pre class="codesample">connection.Open "URL=http://server"</pre> | ||
<pre class="codesample">connection.Open | <pre class="codesample">connection.Open "URL=http://server/docs"</pre> | ||
<pre class="codesample">connection.Open | <pre class="codesample">connection.Open "URL=http://server/docs/mydocs"</pre> | ||
<pre class="codesample">connection.Open | <pre class="codesample">connection.Open "Provider=MSDAIPP.DSO;Data Source=http://server"</pre> | ||
<pre class="codesample">connection.Open | <pre class="codesample">connection.Open "Provider=MSDAIPP.DSO;Data Source=http://server/docs"</pre> | ||
<pre class="codesample">connection.Open | <pre class="codesample">connection.Open "Provider=MSDAIPP.DSO;Data Source=http://server/docs/mydocs"</pre> | ||
<pre class="codesample">connection.Provider = | <pre class="codesample">connection.Provider = "MSDAIPP.DSO" ' Data Source is implicit when the | ||
connection.Open = | connection.Open = "http://server" ' Provider is specified separately | ||
</pre> | </pre> | ||
<pre class="codesample">connection.Provider = | <pre class="codesample">connection.Provider = "MSDAIPP.DSO" | ||
connection.Open = | connection.Open = "http://server/docs" | ||
</pre> | </pre> | ||
<pre class="codesample">connection.Provider = | <pre class="codesample">connection.Provider = "MSDAIPP.DSO" | ||
connection.Open = | connection.Open = "http://server/docs/mydocs" | ||
</pre> | </pre> | ||
=== Recordset Object === | === Recordset Object === | ||
Line 88: | Line 88: | ||
<br /> | <br /> | ||
Root directory:</p> | Root directory:</p> | ||
<pre class="codesample">rs.Open | <pre class="codesample">rs.Open "", "URL=http://server", , , adCmdTableDirect</pre> | ||
<p><br /> | <p><br /> | ||
docs directory:</p> | docs directory:</p> | ||
<pre class="codesample">rs.Open | <pre class="codesample">rs.Open "", "URL=http://server/docs", , , adCmdTableDirect</pre> | ||
<pre class="codesample">rs.Open | <pre class="codesample">rs.Open "docs", "URL=http://server", , , adCmdTableDirect</pre> | ||
<p><br /> | <p><br /> | ||
mydocs directory:</p> | mydocs directory:</p> | ||
<pre class="codesample">rs.Open | <pre class="codesample">rs.Open "", "URL=http://server/docs/mydocs", , , adCmdTableDirect</pre> | ||
<pre class="codesample">rs.Open | <pre class="codesample">rs.Open "mydocs", "URL=http://server/docs", , , adCmdTableDirect</pre> | ||
<pre class="codesample">rs.Open | <pre class="codesample">rs.Open "docs/mydocs", "URL=http://server", , , adCmdTableDirect</pre></li> | ||
<li><p>Opening a Recordset on a file:<br /> | <li><p>Opening a Recordset on a file:<br /> | ||
To retrieve a specific document, open the Recordset and specify a relative URL to the document.</p> | To retrieve a specific document, open the Recordset and specify a relative URL to the document.</p> | ||
<pre class="codesample">rs.Open | <pre class="codesample">rs.Open "myfile.txt", "URL=http://server/docs/mydocs", , , adCmdTableDirect</pre> | ||
<pre class="codesample">rs.Open | <pre class="codesample">rs.Open "mydocs/myfile.txt", "URL=http://server/docs", , , adCmdTableDirect</pre> | ||
<pre class="codesample">rs.Open | <pre class="codesample">rs.Open "docs/mydocs/myfile.txt", "URL=http://server", , , adCmdTableDirect</pre></li> | ||
<li><p>Opening a Recordset based on a Record object:<br /> | <li><p>Opening a Recordset based on a Record object:<br /> | ||
You can use the GetChildren method of a Record object opened on a directory to populate a Recordset of file names.</p> | You can use the GetChildren method of a Record object opened on a directory to populate a Recordset of file names.</p> | ||
<pre class="codesample">rec.Open | <pre class="codesample">rec.Open "docs/mydocs", "URL=http://server" | ||
Set rs = rec.GetChildren | Set rs = rec.GetChildren | ||
</pre></li></ul> | </pre></li></ul> | ||
Line 116: | Line 116: | ||
<br /> | <br /> | ||
Root directory:</p> | Root directory:</p> | ||
<pre class="codesample">rec.Open | <pre class="codesample">rec.Open "", "URL=http://server"</pre> | ||
<p><br /> | <p><br /> | ||
docs directory:</p> | docs directory:</p> | ||
<pre class="codesample">rec.Open | <pre class="codesample">rec.Open "", "URL=http://server/docs"</pre> | ||
<pre class="codesample">rec.Open | <pre class="codesample">rec.Open "docs", "URL=http://server"</pre> | ||
<p><br /> | <p><br /> | ||
mydocs directory:</p> | mydocs directory:</p> | ||
<pre class="codesample">rec.Open | <pre class="codesample">rec.Open "", "URL=http://server/docs/mydocs"</pre> | ||
<pre class="codesample">rec.Open | <pre class="codesample">rec.Open "mydocs", "URL=http://server/docs"</pre> | ||
<pre class="codesample">rec.Open | <pre class="codesample">rec.Open "docs/mydocs", "URL=http://server"</pre></li> | ||
<li><p>Opening a Record on a file:</p> | <li><p>Opening a Record on a file:</p> | ||
<pre class="codesample">rec.Open | <pre class="codesample">rec.Open "myfile.txt", "URL=http://server/docs/mydocs"</pre> | ||
<pre class="codesample">rec.Open | <pre class="codesample">rec.Open "mydocs/myfile.txt", "URL=http://server/docs"</pre> | ||
<pre class="codesample">rec.Open | <pre class="codesample">rec.Open "docs/mydocs/myfile.txt", "URL=http://server"</pre></li> | ||
<li><p>Opening a Record from a Recordset: The Record object is opened on the document/directory referenced by the current record in the Recordset.</p> | <li><p>Opening a Record from a Recordset: The Record object is opened on the document/directory referenced by the current record in the Recordset.</p> | ||
<pre class="codesample">rs.Open | <pre class="codesample">rs.Open "", "URL=http://server/docs/mydocs", , , adCmdTableDirect | ||
rec.Open rs | rec.Open rs | ||
</pre></li></ol> | </pre></li></ol> | ||
Line 138: | Line 138: | ||
The Stream object has a number of open modes that are not documented here. The following example is of opening a text document. | The Stream object has a number of open modes that are not documented here. The following example is of opening a text document. | ||
<pre class="codesample">stm.Open | <pre class="codesample">stm.Open "URL=http://server/docs/mydocs/myfile.txt", adModeRead</pre> | ||
<pre class="codesample">rec.Open | <pre class="codesample">rec.Open "myfile.txt", "URL=http://server/docs/mydocs" | ||
stm.Open rec, adModeRead, adOpenStreamFromRecord | stm.Open rec, adModeRead, adOpenStreamFromRecord | ||
</pre> | </pre> | ||
<pre class="codesample">rs.Open | <pre class="codesample">rs.Open "myfile.txt", "URL=http://server/docs/mydocs", , , adCmdTableDirect | ||
rec.Open rs | rec.Open rs | ||
stm.Open rec, adModeRead, adOpenStreamFromRecord | stm.Open rec, adModeRead, adOpenStreamFromRecord |
Latest revision as of 13:49, 21 July 2020
Article ID: 245359
Article Last Modified on 7/2/2004
APPLIES TO
- Microsoft Data Access Components 2.5
- Microsoft Data Access Components 2.6
- Microsoft Data Access Components 2.7
This article was previously published under Q245359
SUMMARY
The Microsoft Internet Publishing Provider, MSDAIPP.dso, can be used to retrieve documents located in Internet Information Server (IIS) Virtual Directories. The provider can return a Recordset containing all the files in the directory, or a Record object that refers to a single file. You can use the ADO Stream object to read and write to the file if you have appropriate permissions on the server.
This article demonstrates how to successfully make a connection using the MSDAIPP.dso provider and retrieve objects.
MORE INFORMATION
MDAC 2.5 allows the MSDAIPP.dso provider to be invoked both explicitly and implicitly. If you invoke it explicitly, you must provide both the Provider and Data Source arguments when connecting. To invoke it implicitly, the connect string must begin with URL=. Using URL= is known as Direct Binding or specifying a Root Binder.
Most examples are shown using indirect binding, though you can also use the explicit syntax in any of the scenarios.
To locate a document, you must specify a URL (the Data Source is also a URL) and a relative path off the URL. The former is known as an Absolute URL; the latter a relative URL. A combination of the two forms a Complete URL.
The following examples illustrate various ways of opening Connection, Recordset, Record, and Stream objects. For purposes of the examples, the complete URL to the document is http://server/docs/mydocs/myfile.txt.
Connection object
You use an absolute URL for the connection.
connection.Open "URL=http://server"
connection.Open "URL=http://server/docs"
connection.Open "URL=http://server/docs/mydocs"
connection.Open "Provider=MSDAIPP.DSO;Data Source=http://server"
connection.Open "Provider=MSDAIPP.DSO;Data Source=http://server/docs"
connection.Open "Provider=MSDAIPP.DSO;Data Source=http://server/docs/mydocs"
connection.Provider = "MSDAIPP.DSO" ' Data Source is implicit when the connection.Open = "http://server" ' Provider is specified separately
connection.Provider = "MSDAIPP.DSO" connection.Open = "http://server/docs"
connection.Provider = "MSDAIPP.DSO" connection.Open = "http://server/docs/mydocs"
Recordset Object
The MSDAIPP.dso provider only returns a Read-only, Forward-only cursor.
Opening a Recordset on a directory:
To retrieve a list of documents in a path, open the Recordset on a connection without specifying a relative URL to a document. You must have permissions in IIS to browse the directory or the provider returns an empty Recordset.
Root directory:rs.Open "", "URL=http://server", , , adCmdTableDirect
docs directory:rs.Open "", "URL=http://server/docs", , , adCmdTableDirect
rs.Open "docs", "URL=http://server", , , adCmdTableDirect
mydocs directory:rs.Open "", "URL=http://server/docs/mydocs", , , adCmdTableDirect
rs.Open "mydocs", "URL=http://server/docs", , , adCmdTableDirect
rs.Open "docs/mydocs", "URL=http://server", , , adCmdTableDirect
Opening a Recordset on a file:
To retrieve a specific document, open the Recordset and specify a relative URL to the document.rs.Open "myfile.txt", "URL=http://server/docs/mydocs", , , adCmdTableDirect
rs.Open "mydocs/myfile.txt", "URL=http://server/docs", , , adCmdTableDirect
rs.Open "docs/mydocs/myfile.txt", "URL=http://server", , , adCmdTableDirect
Opening a Recordset based on a Record object:
You can use the GetChildren method of a Record object opened on a directory to populate a Recordset of file names.rec.Open "docs/mydocs", "URL=http://server" Set rs = rec.GetChildren
Record Object
You can open a Record object directly on a directory or a document. You can also open a Record based on the current record of a Recordset.
Opening a Record object on a directory:
Root directory:rec.Open "", "URL=http://server"
docs directory:rec.Open "", "URL=http://server/docs"
rec.Open "docs", "URL=http://server"
mydocs directory:rec.Open "", "URL=http://server/docs/mydocs"
rec.Open "mydocs", "URL=http://server/docs"
rec.Open "docs/mydocs", "URL=http://server"
Opening a Record on a file:
rec.Open "myfile.txt", "URL=http://server/docs/mydocs"
rec.Open "mydocs/myfile.txt", "URL=http://server/docs"
rec.Open "docs/mydocs/myfile.txt", "URL=http://server"
Opening a Record from a Recordset: The Record object is opened on the document/directory referenced by the current record in the Recordset.
rs.Open "", "URL=http://server/docs/mydocs", , , adCmdTableDirect rec.Open rs
Stream Object
The Stream object has a number of open modes that are not documented here. The following example is of opening a text document.
stm.Open "URL=http://server/docs/mydocs/myfile.txt", adModeRead
rec.Open "myfile.txt", "URL=http://server/docs/mydocs" stm.Open rec, adModeRead, adOpenStreamFromRecord
rs.Open "myfile.txt", "URL=http://server/docs/mydocs", , , adCmdTableDirect rec.Open rs stm.Open rec, adModeRead, adOpenStreamFromRecord
REFERENCES
For more information on any of the above information, please refer to the Platform SDK for Windows 2000.
Additional query words: kbGrpMDAC kbDSupport kbMDAC250
Keywords: kbhowto kbfix KB245359