Collateral methods now quote table/column names. Removed Collateral methods from Thingy asset.

This commit is contained in:
Yung Han Khoe 2008-03-15 16:19:40 +00:00
parent f70549720b
commit 8999b5f5e2
2 changed files with 14 additions and 76 deletions

View file

@ -136,7 +136,9 @@ sub deleteCollateral {
my $table = shift;
my $keyName = shift;
my $keyValue = shift;
$self->session->db->write("delete from $table where $keyName=".$self->session->db->quote($keyValue));
my $db = $self->session->db;
$self->session->db->write("delete from ".$db->dbh->quote_identifier($table)
." where ".$db->dbh->quote_identifier($keyName)."=".$db->quote($keyValue));
$self->updateHistory("deleted collateral item ".$keyName." ".$keyValue);
}
@ -204,10 +206,12 @@ sub getCollateral {
my $table = shift;
my $keyName = shift;
my $keyValue = shift;
my $db = $self->session->db;
if ($keyValue eq "new" || $keyValue eq "") {
return {$keyName=>"new"};
} else {
return $self->session->db->quickHashRef("select * from $table where $keyName=".$self->session->db->quote($keyValue));
return $db->quickHashRef("select * from ".$db->dbh->quote_identifier($table)
." where ".$db->dbh->quote_identifier($keyName)."=?",[$keyValue]);
}
}
@ -432,17 +436,19 @@ sub setCollateral {
my $useAssetId = shift;
my $setName = shift || "assetId";
my $setValue = shift || $self->get($setName);
my $db = $self->session->db;
my ($key, $seq, $dbkeys, $dbvalues);
my $counter = 0;
my $sql;
if ($properties->{$keyName} eq "new" || $properties->{$keyName} eq "") {
$properties->{$keyName} = $self->session->id->generate();
$sql = "insert into $table (";
$sql = "insert into ".$db->dbh->quote_identifier($table)." (";
my $dbkeys = "";
my $dbvalues = "";
unless ($useSequence eq "0") {
unless (exists $properties->{sequenceNumber}) {
my ($seq) = $self->session->db->quickArray("select max(sequenceNumber) from $table where $setName=?",[$setValue]);
my ($seq) = $self->session->db->quickArray("select max(sequenceNumber) "
." from ".$db->dbh->quote_identifier($table)." where $setName=?",[$setValue]);
$properties->{sequenceNumber} = $seq+1;
}
}
@ -454,20 +460,20 @@ sub setCollateral {
$dbkeys .= ',';
$dbvalues .= ',';
}
$dbkeys .= $key;
$dbkeys .= $db->dbh->quote_identifier($key);
$dbvalues .= $self->session->db->quote($properties->{$key});
}
$sql .= $dbkeys.') values ('.$dbvalues.')';
$self->updateHistory("added collateral item ".$table." ".$properties->{$keyName});
} else {
$sql = "update $table set ";
$sql = "update ".$db->dbh->quote_identifier($table)." set ";
foreach my $key (keys %{$properties}) {
unless ($key eq "sequenceNumber") {
$sql .= ',' if ($counter++ > 0);
$sql .= $key."=".$self->session->db->quote($properties->{$key});
$sql .= $db->dbh->quote_identifier($key)."=".$db->quote($properties->{$key});
}
}
$sql .= " where $keyName=".$self->session->db->quote($properties->{$keyName});
$sql .= " where ".$db->dbh->quote_identifier($keyName)."=".$db->quote($properties->{$keyName});
$self->updateHistory("edited collateral item ".$table." ".$properties->{$keyName});
}
$self->session->db->write($sql);

View file

@ -2496,72 +2496,4 @@ sequenceNumber');
}
#-------------------------------------------------------------------
# Collateral methods can be removed after Collateral methods in Wobject.pm are updated to quote table/column names.
#
sub setCollateral {
my $self = shift;
my $table = shift;
my $keyName = shift;
my $properties = shift;
my $useSequence = shift;
my $useAssetId = shift;
my $setName = shift || "assetId";
my $setValue = shift || $self->get($setName);
my ($key, $seq, $dbkeys, $dbvalues);
my $counter = 0;
my $sql;
if ($properties->{$keyName} eq "new" || $properties->{$keyName} eq "") {
$properties->{$keyName} = $self->session->id->generate();
$sql = "insert into ".$self->session->db->dbh->quote_identifier($table)." (";
my $dbkeys = "";
my $dbvalues = "";
unless ($useSequence eq "0") {
unless (exists $properties->{sequenceNumber}) {
my ($seq) = $self->session->db->quickArray("select max(sequenceNumber) from $table where
$setName=?",[$setValue]);
$properties->{sequenceNumber} = $seq+1;
}
}
unless ($useAssetId eq "0") {
$properties->{assetId} = $self->get("assetId");
}
foreach my $key (keys %{$properties}) {
if ($counter++ > 0) {
$dbkeys .= ',';
$dbvalues .= ',';
}
$dbkeys .= $self->session->db->dbh->quote_identifier($key);
$dbvalues .= $self->session->db->quote($properties->{$key});
}
$sql .= $dbkeys.') values ('.$dbvalues.')';
$self->updateHistory("added collateral item ".$table." ".$properties->{$keyName});
} else {
$sql = "update ".$self->session->db->dbh->quote_identifier($table)." set ";
foreach my $key (keys %{$properties}) {
unless ($key eq "sequenceNumber") {
$sql .= ',' if ($counter++ > 0);
$sql .= $self->session->db->dbh->quote_identifier($key)."=".$self->session->db->quote($properties->{$key});
}
}
$sql .= " where $keyName=".$self->session->db->quote($properties->{$keyName});
$self->updateHistory("edited collateral item ".$table." ".$properties->{$keyName});
}
$self->session->db->write($sql);
$self->reorderCollateral($table,$keyName,$setName,$setValue) if ($properties->{sequenceNumber} < 0);
return $properties->{$keyName};
}
sub deleteCollateral {
my $self = shift;
my $table = shift;
my $keyName = shift;
my $keyValue = shift;
$self->session->db->write("delete from ".$self->session->db->dbh->quote_identifier($table)
." where $keyName=".$self->session->db->quote($keyValue));
$self->updateHistory("deleted collateral item ".$keyName." ".$keyValue);
}
1;