44 |
my $user = shift || die "need dbi_user= in [global] section of configuration file"; |
my $user = shift || die "need dbi_user= in [global] section of configuration file"; |
45 |
my $passwd = shift || die "need dbi_passwd= in [global] section of configuration file"; |
my $passwd = shift || die "need dbi_passwd= in [global] section of configuration file"; |
46 |
|
|
47 |
|
$self->{dbd} = $dbd; |
48 |
|
|
49 |
$self->{dbh} = DBI->connect("DBI:$dbd:$dsn",$user,$passwd) || die $DBI::errstr; |
$self->{dbh} = DBI->connect("DBI:$dbd:$dsn",$user,$passwd) || die $DBI::errstr; |
50 |
$Count++; |
$Count++; |
51 |
|
|
163 |
} else { |
} else { |
164 |
# if no match is found when searching from beginning |
# if no match is found when searching from beginning |
165 |
# of word in index, try substring match anywhere |
# of word in index, try substring match anywhere |
166 |
$sql2 = "select ord from $field where upper(item) like '%'||upper(?)||'%'"; |
$sql2 = "select ord from $field where upper(item) like '% '||upper(?)||'%'"; |
167 |
$sth = $self->{dbh}->prepare($sql2) || die "sql2: $sql2; ".$self->{dbh}->errstr(); |
$sth = $self->{dbh}->prepare($sql2) || die "sql2: $sql2; ".$self->{dbh}->errstr(); |
168 |
$sth->execute($where) || die "sql2: $sql2; ".$self->{dbh}->errstr(); |
$sth->execute($where) || die "sql2: $sql2; ".$self->{dbh}->errstr(); |
169 |
if (my $row = $sth->fetchrow_hashref) { |
if (my $row = $sth->fetchrow_hashref) { |
213 |
|
|
214 |
$self->{dbh}->commit || die $self->{dbh}->errstr(); |
$self->{dbh}->commit || die $self->{dbh}->errstr(); |
215 |
} |
} |
216 |
|
|
217 |
|
if ($self->{dbd} =~ m/(Pg|SQLite)/) { |
218 |
|
$self->{dbh}->do(qq{vacuum}) || warn "vacumming failed. It shouldn't if you are using PostgreSQL or SQLite: ".$self->{dbh}->errstr(); |
219 |
|
} |
220 |
|
|
221 |
$self->bench("disconnecting from database"); |
$self->bench("disconnecting from database"); |
222 |
|
|
223 |
$self->{dbh}->disconnect; |
$self->{dbh}->disconnect; |