ocehb: (Default)
ocehb ([personal profile] ocehb) wrote2006-10-31 01:44 pm
Entry tags:

DBI сабклассинг

при использовании сбаклассинга DBI (use base "DBI"), обязательно должны присутствовать модули с суффиксами ::db и ::st с наследованием от DBI::db и DBI::st соответственно.

обращение к DBI методам через SUPER::



package ABC::Base;

use base qw(DBI);

package ABC::Base::db;

use base qw(DBI::db);

sub all_tables ($) {
        my $dbh = shift;
        my $ret = $dbh->SUPER::selectall_arrayref ("SHOW TABLES") or return;
        return map { $_->[0] } @$ret;
}

package ABC::Base::st;

use base qw(DBI::st);

1;


использование:


my $dbh = ABC::Base->connect ("dbi:mysql:base","root","");
my @tables = $dbh->all_tables ();

[identity profile] lav14.livejournal.com 2006-10-31 12:09 pm (UTC)(link)
а ты не мог бы про любовь написать,а? А то я очень тебе отвечать хочу, а вот про это не умею...так как нифига в твоих каракулях не понимаю..
даже через SUPER не получается!

[identity profile] lav14.livejournal.com 2006-10-31 06:30 pm (UTC)(link)
тогда вот вам перл.. зашифруйте:
Нажимая на кнопку в лифте, настоящий интернетчик всегда с содроганием ждет, что нужный ему этаж вывалится в новом окошке.

[identity profile] http://users.livejournal.com/_kleptos_/ 2006-11-01 02:08 am (UTC)(link)
иносказательынй перевод мана dbi как-то контрастирует с тем, что вы обычно освещаете в своих постингах.
что это?

[identity profile] http://users.livejournal.com/_kleptos_/ 2006-11-01 10:39 am (UTC)(link)
а, понятно.
хотя
kleptos@localhost ~ $ perl -MDBI -lwe '{package bzz; use base 'DBI'} bzz->connect(qw/dbi:foo:bar baz barney/)';
DBI subclasses 'bzz::db' and ::st are not setup, RootClass ignored at -e line 1

у вас не так?