function da_sql_pconnect($config)
{
    $retrytime = 0;
    if ($config[sql_use_http_credentials] == 'yes') {
        global $HTTP_SERVER_VARS;
        $SQL_user = $HTTP_SERVER_VARS["PHP_AUTH_USER"];
        $SQL_passwd = $HTTP_SERVER_VARS["PHP_AUTH_PW"];
    } else {
        $SQL_user = $config[sql_username];
        $SQL_passwd = $config[sql_password];
    }
    if ($config[sql_connect_timeout] != 0) {
        $retrytime = $config[sql_connect_timeout];
    }
    if ($config[sql_debug] == 'true') {
        print "<b>DEBUG(SQL,SQLRELAY DRIVER): Connect: Host={$config['sql_server']},Port={$config['sql_port']},User={$SQL_user},Password={$SQL_passwd} </b><br>\n";
    }
    $link[con] = sqlrcon_alloc($config[sql_server], $config[sql_port], '', $SQL_user, $SQL_passwd, $retrytime, 1);
    if ($link[con]) {
        sqlrcon_debugOn($link[con]);
        $link[cur] = sqlrcur_alloc($link[con]);
        if ($link[cur]) {
            sqlrcur_setResultSetBufferSize($link[cur], 4);
            sqlrcur_lowerCaseColumnNames($link[cur]);
            return $link;
        } else {
            return false;
        }
    } else {
        return false;
    }
}
 /**
  * Prepare the query 
  * Only if Oracle Type
  *
  * @access protected
  * @return string
  * @see    self::execute()
  */
 function _prep_query()
 {
     if (true === $this->_bPrefetch) {
         sqlrcur_setResultSetBufferSize($this->curs_id, $this->_iPrefetch);
     }
     if ($this->isOracle()) {
         if (count($this->aInputBinds) > 0 || count($this->aSubstitution) > 0 || count($this->aOutputBinds) > 0) {
             $this->_bUseBinds = true;
             $bSucceed = true;
             /*
              * Prepare the query before substitution and/or binds 
              */
             sqlrcur_prepareQuery($this->curs_id, $this->_sQuery);
             /*
              * Set the different substitution 
              */
             for ($i = 0; $i < count($this->aSubstitution); $i++) {
                 $this->_setSubstitution($this->aSubstitution[$i]);
             }
             /*
              * Set the different input substitution
              */
             for ($i = 0; $i < count($this->aInputBinds); $i++) {
                 $this->_setInputBind($this->aInputBinds[$i]);
             }
             /*
              * Set the different output binds
              */
             for ($i = 0; $i < count($this->aOutputBinds); $i++) {
                 $this->_bOutputBind = true;
                 $this->_setOutputBind($this->aOutputBinds[$i]);
             }
         }
     }
 }