Ejemplo n.º 1
0
 /**
  * Execute an skey-based update
  *
  */
 function update()
 {
     $row = aFromGP('x4v_');
     $skey = 0;
     $table_id = $this->dd['table_id'];
     # KFD 6/12/08, allow functions to modify or prevent a write
     $tbefore = $table_id . "_writeBefore";
     $tafter = $table_id . "_writeAfter";
     if (function_exists($tbefore)) {
         $message = $tbefore($row);
         if ($message != '') {
             x4Error($message);
             return;
         }
     }
     # KFD 6/28/08, a non-empty date must be valid
     $errors = false;
     foreach ($row as $col => $value) {
         if (!isset($this->dd['flat'][$col])) {
             unset($row[$col]);
             continue;
         }
         $ermsg = "Invalid date format for " . $this->dd['flat'][$col]['description'];
         $ermsg2 = "Invalid date value for " . $this->dd['flat'][$col]['description'];
         if ($this->dd['flat'][$col]['type_id'] == 'date') {
             if (trim($value) == '') {
                 continue;
             }
             if (strpos($value, '/') === false && strpos($value, '-') === false) {
                 x4Error($ermsg);
                 $errors = true;
                 continue;
             }
             if (strpos($value, '/') !== false) {
                 $parsed = explode('/', $value);
                 if (count($parsed) != 3) {
                     $errors = true;
                     x4Error($ermsg);
                     continue;
                 }
                 if (!checkdate($parsed[0], $parsed[1], $parsed[2])) {
                     x4Error($ermsg2);
                     $errors = true;
                     continue;
                 }
             }
             if (strpos($value, '-') !== false) {
                 $parsed = explode('-', $value);
                 if (count($parsed) != 3) {
                     $errors = true;
                     x4Error($ermsg);
                     continue;
                 }
                 if (!checkdate($parsed[1], $parsed[2], $parsed[0])) {
                     x4Error($ermsg2);
                     $errors = true;
                     continue;
                 }
             }
         }
     }
     if ($errors) {
         return;
     }
     if ($row['skey'] == 0 || !isset($row['skey'])) {
         unset($row['skey']);
         $skey = SQLX_Insert($this->dd, $row);
         if (!errors()) {
             $row = SQL_OneRow("Select * FROM {$this->view_id} WHERE skey = {$skey}");
         }
         x4Data('row', $row);
     } else {
         SQLX_Update($this->dd, $row);
         if (!errors()) {
             $skey = $row['skey'];
             $row = SQL_OneRow("Select * FROM {$this->view_id} WHERE skey = {$skey}");
             x4Data('row', $row);
         }
     }
     # KFD 6/12/08, allow functions to modify or prevent a write
     if (Errors()) {
         return;
     }
     if (function_exists($tafter)) {
         $message = $tafter($row);
         if ($message != '') {
             x4Error($message);
             return;
         }
     }
 }
Ejemplo n.º 2
0
function x4SQL($sql)
{
    $dbconn = $GLOBALS['AG']['dbconn'];
    pg_send_query($dbconn, $sql);
    $results = pg_get_result($dbconn);
    $t = pg_result_error($results);
    $error = false;
    if ($t) {
        // Made conditional 1/24/07 KFD
        // In x4, made universal
        //if(SessionGet('ADMIN',false)) {
        x4Error("(ADMIN): You are logged in as an administrator, you will see " . " more detail than a regular user.");
        x4Error("(ADMIN): " . $sql);
        // Save them separately so they can be dealt with on the
        // browser if need be
        ri('message', 'sql', $sql);
        //}
        $ts = explode(";", $t);
        foreach ($ts as $onerr) {
            if (trim($onerr) == '') {
                continue;
            }
            x4Error($onerr);
        }
        // Now save the original unsplit errors for return to browser
        $t = trim(str_replace('ERROR: ', '', $t));
        $t = str_replace("\n", '', $t);
        ri('message', 'sqlerr', $t);
    }
    return $results;
}
Ejemplo n.º 3
0
function x6Error($parm1)
{
    return x4Error($parm1);
}
Ejemplo n.º 4
0
function x4sqlUpd($table, $row, $whr)
{
    if (!isset($whr['skey'])) {
        x4Error("The database update cannot be performed because the" . " 'skey' column is not present.  This is very likely a" . " programming error, please contact your programmer.");
    } else {
        $view = ddView($table);
        $row = array_merge($row, $whr);
        SQLX_Update($table, $row);
    }
}