| 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 
           
           
         |