Ich versuche, Tabellennamen an eine Untereinheit zu übergeben, die alle Feldnamen dieser Tabelle erhält, speichert sie in einem Array und verwendet dann dieses Array in Verbindung mit dem Abruf einer anderen SQL-Abfrage um die Daten in diesen Feldern anzuzeigen. Hier ist der Code Ich habe jetzt:
Perl DBI dynamische fetchrow while-Schleifen
Beispiele für Unter Anrufe mit Tabellennamen als Parameter:
shamoo("reqhead_rec");
shamoo("approv_rec");
shamoo("denial_rec");
shamoo sub:
sub shamoo
{
my $table = shift;
print uc($table)."\n=====================================\n";
#takes arg (table name) and stores all the field names into an array
$STMT = <<EOF;
select first 1 * from $table
EOF
my $sth = $db1->prepare($STMT);$sth->execute;
my ($i, @field);
my $columns = $sth->{NAME_lc};
while (my $row = $sth->fetch){for $i (0 .. $#$row){$field[$i] = $columns->[$i];}}
$STMT = <<EOF;
select * from $table where frm = '$frm' and req_no = $req_no
EOF
$sth = $db1->prepare($STMT);$sth->execute;
$i=0;
while ($i!=scalar(@field))
{
#need code for in here...
}
}
Ich suche einen Weg, dies zu drehen nto etwas, das definiert werden, muss nicht explizit ....
my ($frm, $req_no, $auth_id, $alt_auth_id, $id_acct, $seq_no, $id, $appr_stat, $add_date, $approve_date, $approve_time, $prim);
while(($frm, $req_no, $auth_id, $alt_auth_id, $id_acct, $seq_no, $id, $appr_stat, $add_date, $approve_date, $approve_time, $prim) = $sth->fetchrow_array())
(keys% $ row) gibt mir diese - Globales Symbol "% Zeile" Namen in dem bei ./req.pl – CheeseConQueso
Der Druck expliziten Pakets erfordert sein sollte: $ „\ t $ col ist Druck row- > {$ col} \ n "; – Anon
Whoops, das bekomme ich, wenn ich nicht testet. –