EasyDBAccess

 view release on metacpan or  search on metacpan

EasyDBAccess.pm  view on Meta::CPAN

		    my $caller='';
		    for(my $i=0;;$i++){
		      my $ra_caller_info=[caller($i)];
		      if(scalar(@$ra_caller_info)==0){last;}
		      else{
		        $caller="\t$ra_caller_info->[1] LINE ".sprintf('%04s',$ra_caller_info->[2]).": $ra_caller_info->[3]\n$caller";
		      }
		    }
		    $caller="CallerInfo:\n$caller";
		    $err_detail="$_pkg_name\:\:batch_insert\(\) throw $_str_exec_err\nHelpNote  : $_str_dbh_do_err\n$sys_err$param$caller\n";
    		return wantarray?(0,5,$err_detail,$_pkg_name):0;
			}
#===end===
      $values_str='';$c=0;$bind_param=[];
    }
  }

  if($c>0){
    my $s=$sql_str;
    chop($values_str);
    $s=~s/\%V/$values_str/g;
    $self->{dbh}->do($s,undef,@$bind_param);
#==3.0.7==
      if($self->{dbh}->err){
				my $err_detail;
				my $sys_err=defined($self->{dbh}->errstr)?"ErrString : ".$self->{dbh}->errstr."\n":'';
    		my $param="ParamInfo :\n"._dump([$s,@$bind_param])."\n";
		    my $caller='';
		    for(my $i=0;;$i++){
		      my $ra_caller_info=[caller($i)];
		      if(scalar(@$ra_caller_info)==0){last;}
		      else{
		        $caller="\t$ra_caller_info->[1] LINE ".sprintf('%04s',$ra_caller_info->[2]).": $ra_caller_info->[3]\n$caller";
		      }
		    }
		    $caller="CallerInfo:\n$caller";
		    $err_detail="$_pkg_name\:\:batch_insert\(\) throw $_str_exec_err\nHelpNote  : $_str_dbh_do_err\n$sys_err$param$caller\n";
    		return wantarray?(0,5,$err_detail,$_pkg_name):0;
			}
#===end===
  }

#==3.0.7==
#  return 1;  
  return wantarray?(1,0,undef,$_pkg_name):1;
#===end===
}

#==3.0.4==
#===wang.yezhuo add start===

sub insert_one_row {
  my $self = shift;
  my ($sql, $filter, $rh_data, $ra) = @_;

  my $ra_param = build_array($filter, $rh_data, $ra);

  return $self->execute($sql, $ra_param);
}

sub update {
  my $self = shift;
  my ($sql, $filter, $rh_data, $ra_param) = @_;

  my ($item_str, $item_bind_param, $flag, $item_str2) = build_update($filter, $rh_data);

  return $self->execute($sql, [@$item_bind_param, @$ra_param], {ITEM => $item_str, COMMAITEM => $item_str2});
}

#===wang.yezhuo add end===
#===end===

sub die_to_file{
  my $file_path= shift;
  my ($err_pkg,$err_code,$err_detail,$record_time)=(undef,undef,undef,CORE::time);
  my $param_count=scalar(@_);
  if($param_count==1){
    ($err_detail)=@_;
  }elsif($param_count==3){
    ($err_code,$err_detail,$err_pkg)=@_;
  }elsif($param_count==4){
    ($err_code,$err_detail,$err_pkg,$record_time)=@_;
  }else{
#==3.0.3==
#   CORE::die "die_to_file param error;";
    CORE::die "$_pkg_name\:\:$_str_func_die_to_file\(\) param error;";
#===end===    
  }

  $_=[localtime($record_time)];
  my $prefix="#####".sprintf('%04s-%02s-%02s %02s:%02s:%02s',$_->[5]+1900,$_->[4]+1,$_->[3],$_->[2],$_->[1],$_->[0])."\n";

  my $result=append_file($file_path,$prefix.$err_detail."\n");
  if($result){
    #log succ
    CORE::die;
  }else{
#==3.0.3==
#   CORE::die($_pkg_name.'::_lookup_err_code: param count should be 1');
    CORE::die("$_pkg_name\:\:$_str_func_die_to_file\(\) param count should be 1");
#===end===    
  }
}

#==3.0.1==
sub err_str{
    my $param_count=scalar(@_);
    if($param_count==1){
        return $_[0]->{err_str};
    }else{
      CORE::die("$_pkg_name\:\:$_str_func_err_str\(\) param count should be 1");
    }
}
#===end===

sub err_code{
  my $param_count=scalar(@_);
  if($param_count==1){
    return $_[0]->{err_code};
  }elsif($param_count==2){
    return defined($_[0]->{err_code})&&$_[0]->{err_code}==&_lookup_err_code($_[1]);



( run in 1.225 second using v1.01-cache-2.11-cpan-d7f47b0818f )