--- convert.pl 2001/06/19 08:54:02 1.4 +++ convert.pl 2001/06/19 09:27:42 1.5 @@ -82,15 +82,19 @@ } sub CondInsert { - my ($table, $name, $key, @fields, @values) = @_; + my @values=pop @_; # chop last argument which is array + my ($table, $name, $key, $fields) = @_; my $sql = "SELECT $name FROM $table WHERE ($name = $key)"; my $cnt = $pgdbh->do($sql); return 0 if ($cnt > 0); - $sql = "INSERT INTO $table (".join(",",@fields).") VALUES (".'?'.$#values.")"; - my $sth = $pgdbh->prepare("INSERT INTO $table (".join(",",@fields).") VALUES (".'?'.$#values.")"); + return 0 if ($#values == 0); + my @valtpl; + for (my $i=0; $i<=$#values; $i++) { push @valtpl,"?" } + $sql = "INSERT INTO $table $fields VALUES (".join(",",@valtpl).")"; + my $sth = $pgdbh->prepare($sql); my $ret = $sth->execute(@values); my $err = $pgdbh->errstr; - print &Log("[$sql] ".$err) if ($err); + print &Log("[$sql] [".join(",",@values)."]".$err) if ($err); return $ret; } @@ -222,24 +226,24 @@ $tel = &ConvertString($tel); $fax = &ConvertString($fax); CondInsert("atk_inn", "sifra", $sif_atk, - "(sifra, naziv, razno)", "($sif_atk, $naz_atk, '')"); + "(sifra, naziv, razno)", ($sif_atk, $naz_atk, '')); CondInsert("atk_inn", "sifra", $sif_inn, - "(sifra, naziv, razno)", "($sif_inn, $naz_inn, '')"); + "(sifra, naziv, razno)", ($sif_inn, $naz_inn, '')); CondInsert("proizvodjaci", "sifra", $sif_proizvodjac, "(sifra, naziv, drzava, zastupnistvo, mjesto, zip, ulica_i_broj, razno, telefon, fax)", - "($sif_proizvodjac, $naz_proizvodjac, $drzava, $zastupnistvo, $mjesto, '', $ulica_i_broj, '', $tel, $fax)"); + ($sif_proizvodjac, $naz_proizvodjac, $drzava, $zastupnistvo, $mjesto, '', $ulica_i_broj, '', $tel, $fax)); CondInsert("nacin_izdavanja", "sifra", $sif_nacin_izdavanja, - "(sifra, opis)", "($sif_nacin_izdavanja, $naz_nacin_izdavanja)"); + "(sifra, opis)", ($sif_nacin_izdavanja, $naz_nacin_izdavanja)); CondInsert("list_fond", "sifra", $sif_list_fond, - "(sifra, opis)", "($sif_list_fond, $naz_list_fond)"); + "(sifra, opis)", ($sif_list_fond, $naz_list_fond)); CondInsert("trudnoca", "sifra", $sif_trudnoca, - "(sifra, opis)", "($sif_trudnoca, $naz_trudnoca)"); + "(sifra, opis)", ($sif_trudnoca, $naz_trudnoca)); CondInsert("dojencad", "sifra", $sif_dojencad, - "(sifra, opis)", "($sif_dojencad, $naz_dojencad)"); + "(sifra, opis)", ($sif_dojencad, $naz_dojencad)); CondInsert("vozac", "sifra", $sif_vozac, - "(sifra, opis)", "($sif_vozac, $naz_vozac)"); + "(sifra, opis)", ($sif_vozac, $naz_vozac)); CondInsert("droga", "sifra", $sif_droga, - "(sifra, opis)", "($sif_droga, '')"); + "(sifra, opis)", ($sif_droga, '')); my $tmp = $sth->execute($sifra, $naziv, $sif_atk, $sif_inn, $sif_proizvodjac, $pakovanje, $sastav_1, $sastav_2, $sif_nacin_izdavanja, $sif_list_fond, $sif_trudnoca, @@ -314,22 +318,22 @@ my $tmp = 0; if ($code eq "06") { $tmp += CondInsert("nacin_izdavanja", "sifra", $sifra, - "(sifra, opis)", "($sifra, $naziv)"); + "(sifra, opis)", ($sifra, $naziv)); } elsif ($code eq "07") { $tmp += CondInsert("list_fond", "sifra", $sifra, - "(sifra, opis)", "($sifra, $naziv)"); + "(sifra, opis)", ($sifra, $naziv)); } elsif ($code eq "08") { $tmp += CondInsert("trudnoca", "sifra", $sifra, - "(sifra, opis)", "($sifra, $naziv)"); + "(sifra, opis)", ($sifra, $naziv)); } elsif ($code eq "09") { $tmp += CondInsert("dojencad", "sifra", $sifra, - "(sifra, opis)", "($sifra, $naziv)"); + "(sifra, opis)", ($sifra, $naziv)); } elsif ($code eq "10") { $tmp += CondInsert("vozac", "sifra", $sifra, - "(sifra, opis)", "($sifra, $naziv)"); + "(sifra, opis)", ($sifra, $naziv)); } elsif ($code eq "11") { $tmp += CondInsert("droga", "sifra", $sifra, - "(sifra, opis)", "($sifra, $naziv)"); + "(sifra, opis)", ($sifra, $naziv)); } else { # UNKNOWN CODE!!! print &Log("[WARNING: unknown code \"$code\"]");