CellBIS-SQL-Abstract

 view release on metacpan or  search on metacpan

lib/CellBIS/SQL/Abstract.pm  view on Meta::CPAN

  if ((scalar @table_field) == (scalar @table_data)) {

    if ($type && $type eq 'no-pre-st') {
      $value_col = join ', ', $self->QueryUtil->data_insert(\@table_data);
    }
    elsif ($type && $type eq 'pre-st') {
      @get_data_value
        = @{$self->QueryUtil->data_insert_pre_st(\@table_data)->[0]};
      $value_col = join ', ', @get_data_value;
    }
    else {
      $value_col = join ', ', $self->QueryUtil->data_insert(\@table_data);
    }

    $field_col = trim($field_col);
    $value_col = trim($value_col);
    $value_col =~ s/\,$//g;
    $value_col =~ s/\s\,//g;

    $data = "INSERT INTO $table_name($field_col) VALUES($value_col)";
  }
  return $data;
}

sub insert_bulk {
  my ($self, $table_name, $column, $col_val, $type) = @_;

  $type //= '';
  my @table_field = @{$column};
  my @table_data  = ();
  my @value_data  = ();

  # for field column
  my $field_col = join ', ', @table_field;
  my $value_col = '';

  # for data column
  for my $value (@{$col_val}) {
    if ($type eq 'pre-st') {
      push @value_data, @{$self->QueryUtil->data_insert_pre_st($value)->[1]};
      push @table_data,
          '('
        . (join ', ', @{$self->QueryUtil->data_insert_pre_st($value)->[0]})
        . ')';
    }
    else {
      push @table_data,
        '(' . (join ', ', $self->QueryUtil->data_insert($value)) . ')';
    }
  }

  $field_col = trim($field_col);
  $value_col = trim(join(', ', @table_data));
  $value_col =~ s/\,$//g;
  $value_col =~ s/\s\,//g;

  return ["INSERT INTO ${table_name}($field_col) VALUES $value_col",
    @value_data];
}

sub update {
  my $self    = shift;
  my $arg_len = scalar @_;

  if ($arg_len > 2 || $arg_len >= 5) {
    my $method_name = '_qUpdate_arg' . $arg_len;
    if ($self->can($method_name)) {
      return $self->$method_name(@_);
    }
  }
  return '';
}

sub delete {
  my $self = shift;
  my ($table_name, $clause) = @_;
  my $data = '';

  if (ref($clause) eq "HASH") {

    if (exists $clause->{where}) {
      my $where_clause = $self->QueryUtil->create_clause($clause);
      $data = "DELETE FROM $table_name \n$where_clause";
    }
  }
  return $data;
}

sub select {
  my $self    = shift;
  my $arg_len = scalar @_;
  my $data;

  $data = $self->_qSelect_arg3(@_) unless ($arg_len < 2);
  return $data;
}

sub select_join {
  my $self    = shift;
  my $arg_len = scalar @_;
  my $data    = '';

  $data = $self->_qSelectJoin_arg3(@_) unless ($arg_len < 3);
  return $data;
}

sub create_table {
  my $self    = shift;
  my $arg_len = scalar @_;
  my $result  = '';

  if ($arg_len >= 3) {
    my $tables
      = CellBIS::SQL::Abstract::Table->new(db_type => $self->db_type);
    $result = $tables->create_query_table(@_);
  }
  return $result;
}

# For Action Query String - "update"
# --------------------------------------------------------------



( run in 0.658 second using v1.01-cache-2.11-cpan-ceb78f64989 )