X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FSchema%2FLoader%2FDBI%2FADO%2FMS_Jet.pm;h=e494412c50210ebf730a30a174204488220bf697;hb=refs%2Ftags%2F0.07011;hp=e2dbf8f4fe1b2d9f371746643b65346419e37a7a;hpb=ca2ca9c825d855f49cf650d5c532a361ead0fb9c;p=dbsrgits%2FDBIx-Class-Schema-Loader.git diff --git a/lib/DBIx/Class/Schema/Loader/DBI/ADO/MS_Jet.pm b/lib/DBIx/Class/Schema/Loader/DBI/ADO/MS_Jet.pm index e2dbf8f..e494412 100644 --- a/lib/DBIx/Class/Schema/Loader/DBI/ADO/MS_Jet.pm +++ b/lib/DBIx/Class/Schema/Loader/DBI/ADO/MS_Jet.pm @@ -7,11 +7,10 @@ use base qw/ DBIx::Class::Schema::Loader::DBI::ODBC::ACCESS /; use mro 'c3'; -use Carp::Clan qw/^DBIx::Class/; use Try::Tiny; use namespace::clean; -our $VERSION = '0.07008'; +our $VERSION = '0.07011'; =head1 NAME @@ -124,23 +123,7 @@ sub _columns_info_for { while (my ($col, $info) = each %$result) { my $data_type = $info->{data_type}; - my $col_obj; - - my $cols = $self->_adox_catalog->Tables->Item($table)->Columns; - - for my $col_idx (0..$cols->Count-1) { - $col_obj = $cols->Item($col_idx); - if ($self->preserve_case) { - last if $col_obj->Name eq $col; - } - else { - last if lc($col_obj->Name) eq lc($col); - } - } - - if ($col_obj->Attributes | 2 == 2) { - $info->{is_nullable} = 1; - } + my $col_obj = $self->_adox_column($table, $col); if ($data_type eq 'long') { $info->{data_type} = 'integer'; @@ -194,7 +177,6 @@ sub _columns_info_for { $info->{data_type} = 'binary'; last; } - } $info->{size} = $col_obj->DefinedSize; @@ -209,6 +191,33 @@ sub _columns_info_for { return $result; } +# Trap and ignore OLE warnings from nonexistant comments tables. + +sub _table_comment { + my $self = shift; + + my $warn_handler = $SIG{__WARN__} || sub { warn @_ }; + + local $SIG{__WARN__} = sub { + $warn_handler->(@_) unless $_[0] =~ /cannot find the input table/; + }; + + $self->next::method(@_); +} + +sub _column_comment { + my $self = shift; + + my $warn_handler = $SIG{__WARN__} || sub { warn @_ }; + + local $SIG{__WARN__} = sub { + $warn_handler->(@_) unless $_[0] =~ /cannot find the input table/; + }; + + $self->next::method(@_); +} + + =head1 SEE ALSO L,