dbTableUpdate

function

Library: Database access (OMDB legacy)
Include: omdb.xin

Declaration
define external function dbTableUpdate
       value      dbTable  table
  from read-only  stream   values
  null value      stream   null      optional
 where value      stream   condition

Argument definitions

table
is an open dbTable object.
values
is a stream shelf containing the columns and values to update.
null
is an optional string to represent a NULL value rather than the default unattached stream.
condition
is an optional condition used in the SQL statement to limit the numbers of rows updated.


Purpose

Use dbTableUpdate to update records in a table using the supplied data and criteria.

Requirements

You must include the following line at the beginning of your OmniMark program:

  include "omdb.xin"

The database connection containing the table must be:

table must:

The record being inserted (values) must:

The condition must be

Usage Notes

To specify a null value for the input you may represent the null data value as either an unattached stream or an optionally defined string. The column name is identified by the key of each values parameter shelf item.

If the record has a date, time, or timestamp field, you must represent the field's value in the OmniMark Date and Time library format. (This format returns the time with a time zone offset from UTC time, which most databases do not provide.)

Example

The following program shows how to:

The field data is updated through the dbTable OMX component.
  process
  
      ;  local variables
      local dbDatabase this-db
      local dbField student-average variable
      local dbTable student
      local stream SQL-query initial
      {  "select SID, ave(Grade) " ||
          "from StudentCourse " ||
          "group by SID "
      }
      local stream average variable initial { ' ' with key 'Average' }
  
      set this-db to dbOpenODBC 'dbDemo'
      dbQuery this-db SQL SQL-query record student-average
      set student to dbTableOpen this-db table 'Student'
  
      repeat
          exit unless dbRecordExists student-average
  
          set average{'Average'} to
                  dbFieldValue student-average[2] null '0'
          dbTableUpdate student from average where
                  "SID = ' " ||  dbFieldValue student-average{'SID'}  ||  " ' "
  
          ;  advance the cursor
          dbRecordMove student-average
      again