DBD-Excel
view release on metacpan or search on metacpan
lib/DBD/Excel.pm view on Meta::CPAN
596061626364656667686970717273747576777879# DBD::Excel::dr
#===============================================================================
package
DBD::Excel::dr;
$DBD::Excel::dr::imp_data_size
= 0;
#-------------------------------------------------------------------------------
# connect (DBD::Excel::dr)
# connect database(ie. parse specified Excel file)
#-------------------------------------------------------------------------------
sub
connect
($$@) {
my
(
$hDr
,
$sDbName
,
$sUsr
,
$sAuth
,
$rhAttr
)=
@_
;
#1. create database-handle
my
$hDb
= DBI::_new_dbh(
$hDr
, {
Name
=>
$sDbName
,
USER
=>
$sUsr
,
CURRENT_USER
=>
$sUsr
,
});
#2. parse extra strings in DSN(key1=val1;key2=val2;...)
foreach
my
$sItem
(
split
(/;/,
$sDbName
)) {
if
(
$sItem
=~ /(.*?)=(.*)/) {
lib/DBD/Excel.pm view on Meta::CPAN
159160161162163164165166167168169170171172173174175176177178179
$hDb
->STORE(
'xl_parser'
,
$oExcel
);
$hDb
->STORE(
'xl_book'
,
$oBook
);
$hDb
->STORE(
'xl_skiphidden'
,
$rhAttr
->{xl_skiphidden})
if
$rhAttr
->{xl_skiphidden};
$hDb
->STORE(
'xl_ignorecase'
,
$rhAttr
->{xl_ignorecase})
if
$rhAttr
->{xl_ignorecase};
return
$hDb
;
}
#-------------------------------------------------------------------------------
# _getColName (DBD::Excel::dr)
# internal use
#-------------------------------------------------------------------------------
sub
_getColName($$$$$$) {
my
(
$iIgnore
,
$iHidden
,
$oWkS
,
$iRow
,
$iColS
,
$iColCnt
) =
@_
;
my
$iColMax
;
#MAXIAM Range of Columns (Contains HIDDEN Columns)
my
$iCntWk
= 0;
my
$MaxCol
=
defined
(
$oWkS
->{MaxCol}) ?
$oWkS
->{MaxCol} : 0;
if
(
defined
$iColCnt
) {
if
((
$iColS
+
$iColCnt
- 1) <=
$MaxCol
){
$iColMax
=
$iColS
+
$iColCnt
- 1;
}
else
{
lib/DBD/Excel.pm view on Meta::CPAN
665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694#===============================================================================
# DBD::Excel::Table
#===============================================================================
package
DBD::Excel::Table;
@DBD::Excel::Table::ISA
=
qw(SQL::Eval::Table)
;
#-------------------------------------------------------------------------------
# column_num (DBD::Excel::Statement)
# Called with "SELECT ... FETCH"
#-------------------------------------------------------------------------------
sub
column_num($$) {
my
(
$oThis
,
$sCol
) =
@_
;
$sCol
=
uc
(
$sCol
)
if
(
$oThis
->{xl_t_database}->FETCH(
'xl_ignorecase'
));
return
$oThis
->SUPER::column_num(
$sCol
);
}
#-------------------------------------------------------------------------------
# column(DBD::Excel::Statement)
# Called with "SELECT ... FETCH"
#-------------------------------------------------------------------------------
sub
column($$;$) {
my
(
$oThis
,
$sCol
,
$sVal
) =
@_
;
$sCol
=
uc
(
$sCol
)
if
(
$oThis
->{xl_t_database}->FETCH(
'xl_ignorecase'
));
if
(
defined
$sVal
) {
return
$oThis
->SUPER::column(
$sCol
,
$sVal
);
}
else
{
return
$oThis
->SUPER::column(
$sCol
);
}
}
#-------------------------------------------------------------------------------
( run in 0.655 second using v1.01-cache-2.11-cpan-e5176c747c2 )