protected function substituteSQLOperationPlaceholders($sqloperation)
  {
    $sql_value=$sqloperation->toSQLString();
    if (count($sqloperation->getPlaceholderValues())>0) {
      // there are placeholders
      // replace each questionmark by a placeholder value
      $startpos=0;
      $sql_value_replaced='';
      foreach ($sqloperation->getPlaceholderValues() as $avalue) {
        // find the questionmark
        $qpos=strpos($sql_value, '?', $startpos);
        // copy everything after the last question mark till this questionmark in the new string
        $sql_value_replaced.=substr( $sql_value, $startpos, $qpos );
        // append the replacement for the questionmark
        $sql_value_replaced.=$this->db->Quote($avalue);
        // start searching for questionmarks after this questionmark
        $startpos=$qpos+1;
      }
      // and add the rest of the string
      $sql_value_replaced.=substr( $sql_value, $startpos );
      $sql_value=$sql_value_replaced;
    }
    return $sql_value;
  }