|
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 |
- |
|
|