[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

SF.net SVN: ledger-smb: [878] trunk



Revision: 878
          http://svn.sourceforge.net/ledger-smb/?rev=878&view=rev
Author:   einhverfr
Date:     2007-03-09 22:58:47 -0800 (Fri, 09 Mar 2007)

Log Message:
-----------
More refactoring

Modified Paths:
--------------
    trunk/LedgerSMB/DBObject.pm
    trunk/LedgerSMB.pm

Modified: trunk/LedgerSMB/DBObject.pm
===================================================================
--- trunk/LedgerSMB/DBObject.pm	2007-03-10 06:55:49 UTC (rev 877)
+++ trunk/LedgerSMB/DBObject.pm	2007-03-10 06:58:47 UTC (rev 878)
@@ -82,4 +82,99 @@
 	$self->callproc($funcname, @call_args);
 }
 
+sub run_custom_queries {
+	my ($self, $tablename, $query_type, $linenum) = @_;
+	my $dbh = $self->{dbh};
+	if ($query_type !~ /^(select|insert|update)$/i){
+		$self->error($locale->text(
+			"Passed incorrect query type to run_custom_queries."
+		));
+	}
+	my @rc;
+	my %temphash;
+	my @templist;
+	my @elements;
+	my $query;
+	my $ins_values;
+	if ($linenum){
+		$linenum = "_$linenum";
+	}
+
+	$query_type = uc($query_type);
+	for (@{$self->{custom_db_fields}{$tablename}}){
+		@elements = split (/:/, $_);
+		push @{$temphash{$elements[0]}}, $elements[1];
+	}
+	for (keys %temphash){
+		my @data;
+		my $ins_values;
+		$query = "$query_type ";
+		if ($query_type eq 'UPDATE'){
+			$query = "DELETE FROM $_ WHERE row_id = ?";
+			my $sth = $dbh->prepare($query);
+			$sth->execute->($self->{"id"."$linenum"})
+				|| $self->dberror($query);
+		} elsif ($query_type eq 'INSERT'){
+			$query .= " INTO $_ (";
+		}
+		my $first = 1;
+		for (@{$temphash{$_}}){
+			$query .= "$_";
+			if ($query_type eq 'UPDATE'){
+				$query .= '= ?';
+			}	
+			$ins_values .= "?, ";
+			$query .= ", ";
+			$first = 0;
+			if ($query_type eq 'UPDATE' or $query_type eq 'INSERT'){
+				push @data, $self->{"$_$linenum"}; 
+			}
+		}
+		if ($query_type ne 'INSERT'){
+			$query =~ s/, $//;
+		}
+		if ($query_type eq 'SELECT'){
+			$query .= " FROM $_";
+		}
+		if ($query_type eq 'SELECT' or $query_type eq 'UPDATE'){
+			$query .= " WHERE row_id = ?";
+		}
+		if ($query_type eq 'INSERT'){
+			$query .= " row_id) VALUES ($ins_values ?)";
+		}
+		if ($query_type eq 'SELECT'){
+			push @rc, [ $query ];
+		} else {
+			unshift (@data, $query);
+			push @rc, [ @data ];
+		}
+	}
+	if ($query_type eq 'INSERT'){
+		for (@rc){
+			$query = shift (@{$_});
+			$sth = $dbh->prepare($query) 
+				|| $self->db_error($query);
+			$sth->execute(@{$_}, $self->{id})
+				|| $self->dberror($query);;
+			$sth->finish;
+			$did_insert = 1;
+		}
+	} elsif ($query_type eq 'UPDATE'){
+		@rc = $self->run_custom_queries(
+			$tablename, 'INSERT', $linenum);
+	} elsif ($query_type eq 'SELECT'){
+		for (@rc){
+			$query = shift @{$_};
+			$sth = $self->{dbh}->prepare($query);
+			$sth->execute($self->{id});
+			$ref = $sth->fetchrow_hashref(NAME_lc);
+			for (keys %{$ref}){
+				$self->{$_} = $ref->{$_};
+			}
+		}
+	}
+	@rc;
+}
+
+
 1;

Modified: trunk/LedgerSMB.pm
===================================================================
--- trunk/LedgerSMB.pm	2007-03-10 06:55:49 UTC (rev 877)
+++ trunk/LedgerSMB.pm	2007-03-10 06:58:47 UTC (rev 878)
@@ -393,117 +393,6 @@
 	}
 }
 
-sub run_custom_queries {
-	my ($self, $tablename, $query_type, $linenum) = @_;
-	my $dbh = $self->{dbh};
-	if ($query_type !~ /^(select|insert|update)$/i){
-		$self->error($locale->text(
-			"Passed incorrect query type to run_custom_queries."
-		));
-	}
-	my @rc;
-	my %temphash;
-	my @templist;
-	my @elements;
-	my $query;
-	my $ins_values;
-	if ($linenum){
-		$linenum = "_$linenum";
-	}
-
-	$query_type = uc($query_type);
-	for (@{$self->{custom_db_fields}{$tablename}}){
-		@elements = split (/:/, $_);
-		push @{$temphash{$elements[0]}}, $elements[1];
-	}
-	for (keys %temphash){
-		my @data;
-		my $ins_values;
-		$query = "$query_type ";
-		if ($query_type eq 'UPDATE'){
-			$query = "DELETE FROM $_ WHERE row_id = ?";
-			my $sth = $dbh->prepare($query);
-			$sth->execute->($self->{"id"."$linenum"})
-				|| $self->dberror($query);
-		} elsif ($query_type eq 'INSERT'){
-			$query .= " INTO $_ (";
-		}
-		my $first = 1;
-		for (@{$temphash{$_}}){
-			$query .= "$_";
-			if ($query_type eq 'UPDATE'){
-				$query .= '= ?';
-			}	
-			$ins_values .= "?, ";
-			$query .= ", ";
-			$first = 0;
-			if ($query_type eq 'UPDATE' or $query_type eq 'INSERT'){
-				push @data, $self->{"$_$linenum"}; 
-			}
-		}
-		if ($query_type ne 'INSERT'){
-			$query =~ s/, $//;
-		}
-		if ($query_type eq 'SELECT'){
-			$query .= " FROM $_";
-		}
-		if ($query_type eq 'SELECT' or $query_type eq 'UPDATE'){
-			$query .= " WHERE row_id = ?";
-		}
-		if ($query_type eq 'INSERT'){
-			$query .= " row_id) VALUES ($ins_values ?)";
-		}
-		if ($query_type eq 'SELECT'){
-			push @rc, [ $query ];
-		} else {
-			unshift (@data, $query);
-			push @rc, [ @data ];
-		}
-	}
-	if ($query_type eq 'INSERT'){
-		for (@rc){
-			$query = shift (@{$_});
-			$sth = $dbh->prepare($query) 
-				|| $self->db_error($query);
-			$sth->execute(@{$_}, $self->{id})
-				|| $self->dberror($query);;
-			$sth->finish;
-			$did_insert = 1;
-		}
-	} elsif ($query_type eq 'UPDATE'){
-		@rc = $self->run_custom_queries(
-			$tablename, 'INSERT', $linenum);
-	} elsif ($query_type eq 'SELECT'){
-		for (@rc){
-			$query = shift @{$_};
-			$sth = $self->{dbh}->prepare($query);
-			$sth->execute($self->{id});
-			$ref = $sth->fetchrow_hashref(NAME_lc);
-			for (keys %{$ref}){
-				$self->{$_} = $ref->{$_};
-			}
-		}
-	}
-	@rc;
-}
-
-
-sub dbconnect {
-
-	my ($self, $myconfig) = @_;
-
-	# connect to database
-	my $dbh = DBI->connect($myconfig->{dbconnect}, $myconfig->{dbuser}, $myconfig->{dbpasswd}) or $self->dberror;
-
-	# set db options
-	if ($myconfig->{dboptions}) {
-		$dbh->do($myconfig->{dboptions}) || $self->dberror($myconfig->{dboptions});
-	}
-
-	$dbh;
-}
-
-
 sub dbconnect_noauto {
 
 	my ($self, $myconfig) = @_;


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.