See
also object creation information - ClassID/ProgID
SFRecord object, together with SFField and
SFFilter defines a record of values of well-known types. This record then could be saved
or read to/from any binary stream or file. The effect is a technique very similar to the
technique used with the DB tables but applicable for files, memory blocks and anything
else that resembles stream of bytes. If you ever heard/used to the so called flat files or
files with random access - this is the way a script application such as ASP page could
access them.
With SFRecord and SFField objects an ASP page could access files otherwise
not understandable for it - such as dBase files or bitmap images and so on. With these
objects the ASP page could do tasks usually performed only by application written in C++
or Delphi for example. Future evolution of these components will add more features and
more flexibility - such as more types supported and some common tasks integrated (for
better performance). The aim is obvious - more areas to become opened for the ASP pages
and other scripts.
How this works? The script defines a record - i.e. defines its fields and defines their
types and sizes. With types known for each field the size of the entire record could be
calculated - e.g. how many bytes it will occupy in memory or file. Actually this action
requires one more step (done automatically) - the SFFilter object that defines additional
details - for example how the strings will be saved - as ANSI characters or as UNICODE.
SFRecord uses the default filter if nothing else is requested. Thus this step remains
transparent, but you could access the automatically created filter if you need to (see the
Filter property).
Then the script/ASP page is able to set the record's fields with some values or read
them. To read/write the record from/to file or other stream the application connects the
SFRecord object with the stream (see BindTo method). With this, through the SFRecord
object, the application sees the file (or other stream) as set of records. The application
can move the current position to any record and read or write it. Thus the file/stream
behaves as table of records. It is similar to the tables in a DB, but note the
difference - the record definition is created by the script and not obtained from the file
(of course - if the file contains such an information the script could read it and create
the record).
Record definition members |
|
Field (default) |
Access field of the record |
|
Count |
Count of the fields in the record |
|
Name |
Name of the record |
|
Add |
Add a field object to the record |
|
Clear |
Clear all the fields in the record |
|
AddField |
Create and add a new field to the record |
|
Remove |
Remove a field from the record |
|
Replace |
Replace a field with another. |
Connection to stream (and filter) |
|
BindTo |
Bind the record to a stream through a filter specified or
using the default filter. |
|
UnBind |
Unbind the record |
|
Filter |
Access the filter used for binding |
|
ReBind |
Rebind to the stream. If come fields are
added/removed/changed |
Random access (DB table-like) reading and
writing |
|
RecordCount |
The total records in the stream |
|
Move, MoveNext, MovePrev,
MoveFirst, MoveLast |
Recordset like operations. |
|
ReRead |
Reareads the record from the stream. |
|
Update |
Saves (updates) the record to the stream. |
Sequential read/write |
|
Read |
Reads the record from the stream. The new position is
immediately after the record. |
|
Write |
Writes the record to the stream. The new position is after
the record. |
Supported on:
Windows 95/NT and later
Windows CE 3.0 and later
Pocket PC/Windows Mobile 2003 and later
Windows CE.NET 4 and later
|