Microsoft KB Archive/248255
Article ID: 248255
Article Last Modified on 8/30/2004
- Microsoft Data Access Components 2.5
- Microsoft Data Access Components 2.6
- Microsoft Data Access Components 2.7
- Microsoft ActiveX Data Objects 2.7
- Microsoft ActiveX Data Objects 2.5
- Microsoft ActiveX Data Objects 2.6
- Microsoft OLE DB 2.7
This article was previously published under Q248255
In Microsoft OLE DB Provider for Internet Publishing, you can open folders and documents into ADO records and ADO recordsets. An ADO record object can represent a row in a recordset, or a single document or folder opened directly. An ADO stream object represents a file in memory. It can be used to display a document that is contained in a record object.
An ADO record object can represent a row in a recordset, or a single document or folder. The example code in this article describes opening a record from a row in an ADO recordset, and directly on a document. When you click Command1, a document is opened into an ADO recordset. A record object is used to retrieve the Recordset row that contains the document. When you click Command2, a document is opened directly into an ADO record object. In both cases, a stream object is opened on a record. Because a stream is a file in memory, you can perform actions such as displaying the file.
Note To be visible to ADO, the documents must reside in an Internet Information Server's virtual directory. The server should be running Microsoft Windows 2000 or later and Internet Information Server 5.0 or later. The client must have Internet Explorer 5 or later installed.
The following sample uses a document that is named Test.txt in a virtual directory that is named Test. The virtual directory may contain other folders and documents.
- In Visual Basic create a new Standard EXE. By default, a form that is named Form1 is created.
- Set a Project Reference to the Microsoft ActiveX Data Objects Library.
- Add two Command buttons to Form1. By default, Command1 and Command2 are created.
- Add a Text box to Form1. By default, Text1 is created. Set the Multiline property of Text1 to True. Set the Scrollbars property of Text1 to Both.
In the Code window, paste the following code in the General Declarations section of Form1:
Private Sub Command1_Click() Dim rs As ADODB.Recordset Set rs = New ADODB.Recordset Dim rec As ADODB.Record Set rec = New ADODB.Record Dim stm As ADODB.Stream Set stm = New ADODB.Stream 'Clear the text box Text1.Text = "" 'You must use Serverside cursors with Internet Publishing provider rs.CursorLocation = adUseServer 'Specify adCmdTableDirect when opening a document or folder rs.Open "test.txt", "Provider=MSDAIPP.DSO;" & _ "Data Source=http://localhost/test", _ adOpenForwardOnly, adLockReadOnly, adCmdTableDirect 'Read the current row of the Recordset into a Record rec.Open rs 'The RESOURCE_CONTENTCLASS may be used to determine ' the document type. In this case, it is text/plain Text1.Text = rec.Fields("RESOURCE_CONTENTCLASS").Value 'An ADO Stream may be Text or Binary stm.Type = adTypeText 'You must specify a Character set to display text stm.Charset = "ascii" 'Read the Record into the stream stm.Open rec, adModeRead, adOpenStreamFromRecord 'Now, read the stream into the text box 'Use the Steam's ReadText method for text, Read for binary Text1.Text = Text1.Text & vbCrLf & stm.ReadText stm.Close Set stm = Nothing rec.Close Set rec = Nothing rs.Close Set rs = Nothing End Sub Private Sub Command2_Click() Dim rec As ADODB.Record Set rec = New ADODB.Record Dim stm As ADODB.Stream Set stm = New ADODB.Stream 'Clear the text box Text1.Text = "" 'Alternate connection string. 'If the provider is specified, you cannot use the URL syntax. 'If URL syntax is used, MSDAIPP.DSO is assumed, and ' provider cannot be specified rec.Open "test.txt", "URL=http://localhost/test", , , _ adCmdTableDirect stm.Type = adTypeText stm.Charset = "ascii" stm.Open rec, adModeRead, adOpenStreamFromRecord Text1.Text = stm.ReadText stm.Close Set stm = Nothing rec.Close Set rec = Nothing End Sub
For a more advanced sample that uses ADO records and streams to work with folders and documents, visit the following Microsoft Developer Network Web site:
Internet Publishing scenario
The Internet Publishing Scenario is also available in the MSDN Library. In the MSDN Library Index, search for the following:
Internet Publishing scenario(ADO).
For additional information about connection strings that open a document into an ADO recordset, click the following article number to view the article in the Microsoft Knowledge Base:
245359 How to open documents by using the Internet Publishing Provider
For more infomation about Microsoft ActiveX Data Objects, visit the following MSDN Web site:
Keywords: kbhowto kbprovider kbdatabase KB248255