db.field

data type

Library: Database access (OMDB)
Import : omdb.xmd


Purpose

The db.field opaque data type allows you to access the data value that exists within a row of a database record set field. This data type is a shelf, where each field value is placed in a separate item on the shelf, and each item key is the unique name of the field. Use the db.field data type in conjunction with db.database to create a connection to a database and obtain a read-only set of data from that database.

Usage Notes

Within your program, you can create as many instances of the db.field data type as you require by declaring global and local shelves of type "db.field". These shelves must be declared as variable.

When you use the db.query, db.execute or db.streaming-execute functions, the db.field shelf is automatically bound to the record set created by the specified SQL query. When you move the data cursor in the record set using the db.move-record function, the db.field shelf is automatically repopulated with whatever values are in the current row. You retrieve values from the db.field variable with the db.reader function.

Please refer to Opaque Data Types for a general description of opaque data types and how they are used.

Related OMDB library functions

The functions

are used to establish db.field components. The db.field objects are used by the following OMDB library functions:

Example

Once you have declared your db.field shelves, you can use those variables in the db.query, db.execute and db.streaming-execute functions that are part of the OmniMark Database library. For example:

  import "omdb.xmd" prefixed by db.
  
  process
     local db.database my-database
     local db.field my-query variable
  
     local stream SQL-query initial
     {  "select C.CourseName, S.StudentName, SC.Grade " ||
        "from Student S, Course C, StudentCourse SC " ||
        "where SC.CID = C.CID and S.SID = SC.SID "
     }
  
     set my-database to db.open-odbc "MyDatabase"
  
     db.query my-database SQL sql-query into my-query
  
     repeat
        exit unless db.record-exists my-query
  
        repeat over my-query
           output db.reader of my-query null '-DNF-'
           output '%t' unless #last
        again
  
        output '%n'
  
        db.move-record my-query
      again