Stream Object | (Versions 2.5, 2.6)
Dim stream As ADODB.Stream A Stream object represents a stream of data that is obtained from a URL, a Record object, or nothing at all.

Stream.Cancel Method | (Versions 2.5, 2.6)
record.Cancel
The Cancel method cancels an asynchronous operation for the Stream object.
Description
The Cancel method cancels an asynchronous operation of the Record object invoked by the Open method.
See Also
Stream.Open Method

Stream.CharSet Property | (Versions 2.5, 2.6)
stream.CharSet = characterset
The CharSet property indicates the character set to whioch the contents of a text Stream should be translated.
Datatype
String
Description
The CharSet property can be set to a valid character set only if the Position property of the Stream object is set to 0. Valid character sets for a system are defined in the HKEY_CLASSES_ROOT\MIME\Database\CharSet subkeys. The default value for the CharSet property is "unicode". If the character set is changed on the fly, the data is translated as it is read from the stream and passed to the application. When writing data, the information is translated before being saved to the data source.

This property is only valid for text streams, which are Stream objects having a value of adTypeText for their Type property value.

See Also
Stream.Type Property

Stream.Close Method | (Versions 2.5, 2.6)
record.Close
The Close method closes an opened Stream object.
Description
The Close method can be called only on an open Stream object. After calling the Close method, the Open method can be called again to reopen the Stream object. Calling the Close method releases any resources allocated to the Stream object.

Stream.CopyTo Method | (Versions 2.5, 2.6)
stream.CopyTo DestStream, NumChars
The CopyTo method copies data from one stream to another.
Arguments

DestStream (Stream Object)

  Must be set to a valid open Stream object, otherwise a runtime error occurs.

NumChars (Integer)

  Optional. Specifies the number of characters to copy from the source to the destination Stream object. The default value is -1, which indicates that all remaining data should be copied.

Description
The CopyTo method copies data from the source Stream object starting at the current stream pointer position (indicated by the Stream.Position property). The number of characters copied is either the number indicated by the NumChars argument or the rest of the source stream if the NumChars argument is greater than the number of remaining characters in the source stream or the NumChars argument value is -1.

The stream pointer position of the destination Stream object is automatically set to the next byte available in the Stream object. The CopyTo method will not remove excess data from the destination Stream object past the copy. To do this, call the SetEOS method.

You can copy data from a textual Stream to a binary Stream object, but not from a binary Stream to a textual Stream object.

See Also
Stream.Position Property, Stream.SetEOS Method

Stream.EOS Property | (Versions 2.5, 2.6)
Boolean = stream.EOS
The EOS property indicates that the stream pointer is currently at the end of the stream.
Datatype
Boolean
Description
The EOS property is True when the stream pointer is located directly after the last piece of information within the stream and is now pointing to the End-Of-Stream pointer.

Stream.Flush Method | (Versions 2.5, 2.6)
stream.Flush
The Flush method ensures that all changes made to a Stream object have been persisted to the resource that the Stream object represents.
Description
The Flush method persists any outstanding changes of the Stream object to the resource that is represented by the Stream object. Microsoft claims that this is very rarely necessary, as ADO calls this method internally in the background whenever possible. In addition, when closing a Stream object, the stream is first flushed to the data source.

Stream.LineSeparator Property | (Versions 2.5, 2.6)
stream.LineSeparator = lineseparator
The LineSeparator indicates the character (or characters) that are used to indicate the end of a line in text streams.
Datatype
LineSeparatorEnum
Description
The default value for the LineSeparator property is adCRLF, which indicates both a carriage return and a line feed. This property is valid only for text streams, which are Stream objects having a value of adTypeText for their Type property value.
See Also
LineSeparatorEnum Enumeration, Stream.SkipLine Method

Stream.LoadFromFile Method | (Versions 2.5, 2.6)
stream.LoadFromFile FileName
The LoadFromFile method loads a file contents into an already open Stream object.
Arguments

FileName (String)

  Must contain a name of a valid file to be loaded into the currently opened Stream object. If the file specified by this argument cannot be found, a runtime error occurs.

Description
The LoadFromFile method works only with an already opened Stream object, replacing the contents of the object with the contents of the file specified within the LoadFromFile argument, FileName. All pre-existing data is overwritten, and any extra data is truncated. However, the Stream object does not lose its relationship to the resource with which it was originally opened.

The LoadFromFile method can be used to upload a file to a server from a client.

Stream.Mode Property | (Versions 2.5, 2.6)
stream.Mode = ConnectModeEnum
The Mode property indicates the permissions for modifying data within a Stream object.
Datatype
ConnectModeEnum
Description
The default value for the Mode property of a Stream object that is associated with an underlying source is adModeRead. Stream objects that are instantiated in memory have a default value of adModeUnknown for the Mode property. The Mode property is read- and write-enabled while the Stream object is closed, but read-only once it is opened.

If the Mode property is not specified for a Stream object, it is inherited from the source used to open the object, such as a Record object.

See Also
ConnectModeEnum Enumeration, Stream.Open Method

Stream.Open Method | (Versions 2.5, 2.6)
stream.Open Source, Mode, OpenOptions, UserName, Password
The Open method opens a Stream object from a URL, an opened Record object, or without a source at all, in memory.
Arguments

Source (Variant)

  Optional. Indicates the source of the resource to open. This can be a URL or an open Record object. Omitting this argument instructs ADO to open the Stream object in memory only.

Mode (ConnectModeEnum)

  Optional. Indicates the access permissions with which to open the Stream object. The default value is adModeUnknown; if the Stream object is opened with a Record object, the Mode value is taken from that object, ignoring this argument.

OpenOptions (StreamOpenOptions)

  Optional. Can be one or more StreamOpenOptions enumeration values, which indicate whether the Stream object should be opened asynchronously or if it is being opened from a Record object, but the default value is adOpenStreamUnspecified.

UserName (String)

  Optional. Indicates, if necessary, the username that will be used to access the resource indicated by the source argument. If the Stream object is being opened with a Record object, this value is ignored because access is already available for the resource.

Password (String)

  Optional. Indicates, if necessary, the password to verify the UserName argument. If the Stream object is being opened with a Record object, this value is ignored because access is already available for the resource.

Description
The Open method of the Stream object can be invoked with a URL source, an already opened Record object, or without a source at all, indicating that the Stream object is opened in memory. If this last method is used, you can read and write to the Stream object just as you can any other way, but you can persist and retrieve data only by using the SaveToFile or LoadFromFile methods.

When opening a Stream object from an already opened Record object, the Mode value is taken from the Record object, and the UserName and Password properties, if specified, are ignored because access has to be already granted to the Record object if it is open. If opening a Stream from a Record object, specify the adOpenStreamFromRecord enumeration value as the OpenOptions argument, and ADO will use the Record's default stream to populate the Stream object.

If you are opening the Stream object with a URL, you must use the URL keyword (URL=scheme://server/folder).

See Also
ConnectModeEnum Enumeration, Stream.LoadFromFile Method, Stream.Mode Property, Stream.SaveToFile Method, StreamOpenOptionsEnum Enumeration

Stream.Position Property | (Versions 2.5, 2.6)
stream.Position = number
The Position property indicates the position of the stream pointer within the Stream object.
Datatype
Long
Description
The Position property can be set to any positive number or 0. It can also be set to a value greater than the size of the current Stream object. In doing so, for streams with write permissions you may increase the size of a Stream object by automatically adding Null values. You can, although you are not advised to, do the same for read-only streams, but the size is not altered.

The Position property indicates the number of bytes the stream pointer is located away from the first byte in the stream. If your character set contains multiple bytes for each character, you must multiply this number by the position desired to get the actual character position. For example, when using Unicode, 0 represents the first character, and 2 represents the second.

Stream.Read Method | (Versions 2.5, 2.6)
bytes = stream.Read (NumBytes)
The Read method reads a number of bytes from a binary stream.
Arguments

NumBytes (Long or StreamReadEnum)

  Optional. Specifies the number of bytes to read from the binary stream. The default value is adReadAll, which returns all the remaining bytes in the stream.

Returns
Variant (array)
Description
The Read method is used to read binary streams (Stream.Type property is equal to adTypeBinary), while the ReadText method is used to read textual streams (Stream.Type property is equal to adTypeText). The return value is a Variant array of bytes, which will equal the number of bytes requested or the number of remaining bytes in the stream if the number of remaining bytes is less than the requested number of bytes. If there is no data to return, a Null Variant value is returned.
See Also
Stream.ReadText Method, Stream.Type Property, StreamReadEnum Enumeration

Stream.ReadText Method | (Versions 2.5, 2.6)
string = stream.ReadText (NumChars)
The ReadText method reads a number of characters from a binary stream.
Arguments

NumChars (Long or StreamReadEnum)

  Optional. Specifies the number of characters to read from the text stream. The default value is adReadAll, which returns all the remaining characters in the stream. You can also specify to return the next line of data with the adReadLine enumeration value.

Returns
String
Description
The ReadText method reads textual streams (Stream.Type property is equal to adTypeText), while the Read method is used to read binary streams (Stream.Type property is equal to adTypeBinary). The return value is a String of values, which equals the number of characters requested or the number of remaining characters in the stream if the number of remaining characters is less than the requested number of characters. If there is no data to return, a Null Variant value is returned.
See Also
Stream.Read Method, Stream.Type Property, StreamReadEnum Enumeration

Stream.SaveToFile Method | (Versions 2.5, 2.6)
stream.SaveToFile (FileName, SaveOptions)
The SaveToFile method persists the data of a binary stream to a local file.
Arguments

FileName (String)

  Indicates where the contents of the current Stream object are to be persisted.

SaveOptions (SaveOptionsEnum)

  Specifies whether a file is to be created if one doesn't exist, if an existing file should be overwritten, or, if a file already exists, whether an error should occur.

Description
The SaveToFile method completely overwrites an existing file if the adSaveCreateOverwrite enumeration value is used in the SaveOptions argument. Using this method does not change the contents of the Stream object nor its association to the original resource with which the Stream object was opened. The only difference from the Stream object is that the Position property is set to the beginning of the stream (0).
See Also
SaveOptionsEnum Enumeration, Stream.Position Property

Stream.SetEOS Method | (Versions 2.5, 2.6)
stream.SetEOS
The SetEOS method changes the EOS within a given Stream object and truncates any data that lies past the new EOS pointer.
Description
The SetEOS method can shorten a Stream object's length when using the Write, WriteText, and CopyTo methods, which cannot truncate the stream themselves.
See Also
Stream.CopyTo Method, Stream.Write Method, Stream.WriteText Method

Stream.Size Property | (Versions 2.5, 2.6)
size = stream.Size
The Size property represents the number of bytes in a Stream object.
Datatype
Long
Description
Because the Stream object's size is only restricted by resources, a Long value may not correctly contain the size of a Stream if it exceeds the largest possible number a Long value can contain. If the size of a stream is unknown, -1 is returned.

Stream.SkipLine Method | (Versions 2.5, 2.6)
stream.SkipLine
The SkipLine method skips entire lines when reading text streams.
Description
The SkipLine method skips an entire line in a textual stream (Stream.Type is equal to adTypeText). This is done by searching for the next occurrence of a line separator (indicated by the LineSeparator property which is, by default, set to adCRLF) or the EOS pointer.
See Also
LineSeparatorEnum Enumeration, Stream.LineSeparator Property, Stream.Type Property

Stream.State Property | (Versions 2.5, 2.6)
state = record.State
The State property indicates the current state of the Stream object.
Datatype
Long (ObjectStateEnum)
Description
The State property is read-only; returning a Long value that can be evaluated as an ObjectStateEnum enumeration value. The default value for the Stream object is closed. For the Stream object, the State property can return multiple values when the object is executing an operation asynchronously (i.e., adStateOpen and adStateExecuting).
See Also
ObjectStateEnum Enumeration

Stream.Type Property | (Versions 2.5, 2.6)
streamtype = stream.Type
The Type property indicates how a Stream object's data should be analyzed.
Datatype
StreamTypeEnum Enumeration
Description
The default value for a Stream object is adTypeText, but if binary data is written to a new Stream object, the Type property will automatically be changed to adTypeBinary. The Type property is read- and write-enabled while the stream pointer is at zero (Position property equals 0) and read-only at any other position.

If the Type property is set to adTypeText, you should use the ReadText and WriteText methods for data manipulation and retrieval. If the Type property is set to adTypeBinary, you should use the Read and Write methods for data manipulation and retrieval.

See Also
Stream.Read Method, Stream.ReadText Method, Stream.Write Method, Stream.WriteText method, StreamTypeEnum Enumeration

Stream.Write Method | (Versions 2.5, 2.6)
stream.Write Buffer
The Write method writes a number of bytes to a binary stream.
Arguments

Buffer (Variant)

  Contains an array of Byte values to be written to the current binary stream.

Description
After writing the specified bytes to the Stream object, the Position property is set to the next byte following the last byte written. If there is existing data past the end of what has been written, it is not truncated. If you want to truncate this data, call the SetEOS method.

If the written data exceeds the length of the Stream object, the new data is appended to the Stream object, the length of the stream is increased, and the EOS pointer is moved to the new end of the stream.

The Write method is used to write to binary streams (Stream.Type property is equal to adTypeBinary), while the WriteText method is used to write textual streams (Stream.Type property is equal to adTypeText).

See Also
Stream.EOS Property, Stream.SetEOS Method, Stream.Type Property, Stream.WriteText Method, StreamWriteEnum Enumeration

Stream.WriteText Method | (Versions 2.5, 2.6)
stream.WriteText Data, Options
The WriteText method writes a number of bytes to a binary stream.
Arguments

Data (String)

  Represents the String data to be written to the Stream object.

Options (StreamWriteEnum)

  Optional. Indicates whether just the data is written to the Stream object or if the data and a line separator (indicated by the LineSeparator property) are added to the Stream object. The default is not to add the line separator.

Description
After writing the specified string to the Stream object, the Position property is set to the next character following the last character written. If there is existing data past the end of what has been written, it is not truncated. If you want to truncate this data, call the SetEOS method.

If the written data exceeds the length of the Stream object, the new data is appended to the Stream object, the length of the stream is increased, and the EOS pointer is moved to the new end of the stream.

The WriteText method is used to write to text streams (Stream.Type property is equal to adTypeText), while the Write method is used to write binary streams (Stream.Type property is equal to adTypeBinary).

See Also
Stream.EOS Property, Stream.SetEOS Method, Stream.Type Property, Stream.WriteText Method, StreamWriteEnum Enumeration