Lines 977-1016
sub _import_table_csv
Link Here
|
977 |
seek($dom, $pos, 0); |
977 |
seek($dom, $pos, 0); |
978 |
return 1; |
978 |
return 1; |
979 |
} |
979 |
} |
980 |
if (scalar(@$fields) == scalar(@arrData)) { |
980 |
if (!$fieldsNameRead) { |
981 |
if (!$fieldsNameRead) { |
981 |
# New table, we read the field names |
982 |
# New table, we read the field names |
982 |
$fieldsNameRead = 1; |
983 |
$fieldsNameRead = 1; |
983 |
$fields = [@arrData]; |
984 |
for (my $i=0; $i < @arrData; $i++) { |
984 |
$fieldsStr = join(',', @$fields); |
985 |
if ($arrData[$i] ne $fields->[$i]) { |
985 |
$dataStr = ''; |
986 |
$fieldsNameRead = 0; |
986 |
map { $dataStr .= '?,';} @$fields; |
987 |
last; |
987 |
chop($dataStr) if ($dataStr); |
988 |
} |
988 |
$updateStr = ''; |
989 |
} |
989 |
map { $updateStr .= $_ . '=?,';} @$fields; |
990 |
if ($fieldsNameRead) { |
990 |
chop($updateStr) if ($updateStr); |
991 |
$fieldsStr = join(',', @$fields); |
991 |
} else { |
992 |
$dataStr = ''; |
992 |
# Read data |
993 |
map { $dataStr .= '?,';} @$fields; |
993 |
my $j = 0; |
994 |
chop($dataStr) if ($dataStr); |
994 |
my %dataFields = (); |
995 |
$updateStr = ''; |
995 |
for (@arrData) { |
996 |
map { $updateStr .= $_ . '=?,';} @$fields; |
996 |
if ($fields->[$j] eq 'frameworkcode' && $_ ne $frameworkcode) { |
997 |
chop($updateStr) if ($updateStr); |
997 |
$dataFields{$fields->[$j]} = $frameworkcode; |
998 |
} |
998 |
$arrData[$j] = $frameworkcode; |
999 |
} else { |
999 |
} else { |
1000 |
# Read data |
1000 |
$dataFields{$fields->[$j]} = $_; |
1001 |
my $j = 0; |
|
|
1002 |
my %dataFields = (); |
1003 |
for (@arrData) { |
1004 |
if ($fields->[$j] eq 'frameworkcode' && $_ ne $frameworkcode) { |
1005 |
$dataFields{$fields->[$j]} = $frameworkcode; |
1006 |
$arrData[$j] = $frameworkcode; |
1007 |
} else { |
1008 |
$dataFields{$fields->[$j]} = $_; |
1009 |
} |
1010 |
$j++ |
1011 |
} |
1001 |
} |
1012 |
$ok = _processRow_DB($dbh, $db_scheme, $table, $fieldsStr, $dataStr, $updateStr, \@arrData, \%dataFields, $PKArray, \@fieldsPK, $fields2Delete); |
1002 |
$j++ |
1013 |
} |
1003 |
} |
|
|
1004 |
$ok = _processRow_DB($dbh, $db_scheme, $table, $fieldsStr, $dataStr, $updateStr, \@arrData, \%dataFields, $PKArray, \@fieldsPK, $fields2Delete); |
1014 |
} |
1005 |
} |
1015 |
$pos = tell($dom); |
1006 |
$pos = tell($dom); |
1016 |
} |
1007 |
} |
1017 |
- |
|
|