Name

dml — control behavior of Vend::Data::update_data()

VALUE

none | preserve | strict

DEFAULT

none

DESCRIPTION

This pragma controls the behavior of Vend::Data::update_data() function in regard to manipulating database records.

No value implies the traditional and backward-compatible Interchange behavior of "update or insert" (upsert).

Value 'preserve' restricts inserts to insert-only, but allows the fall-through behavior from update to insert. As the name preserve implies, it means records can be inserted, but no existing data can be clobbered.

Value 'strict' forces update or insert to only perform the requested action.

EXAMPLES

Example: dml strict

Pragma dml=strict

NOTES

AVAILABILITY

dml is available in Interchange versions:

4.6.0-5.9.0 (git-head)

SOURCE

Interchange 5.9.0 (1/1 contexts shown):

Source: lib/Vend/Data.pm
Line 2278 (context shows lines 2268-2282 in update_data():1804)

  }

  push(@email_rows, [$f, $value])
    if $CGI::values{mv_data_email};
#::logDebug("update_data:db=$d key=$key field=$f value=$value");
  $brec->{$f} = $value if $brec;
}

my $dml = { dml => 'upsert' };
$dml->{dml} = $function
  if $::Pragma->{dml} eq 'strict'
    || $function eq 'insert' && $::Pragma->{dml} eq 'preserve';

for(keys %$qd) {
#::logDebug("update_data: Getting ready to set_slice");

AUTHORS

Mark Johnson

SEE ALSO

DocBook! Interchange!