--- ../AnyData-0.05/DBD/AnyData.pm Tue Jul 17 12:31:44 2001 +++ DBD/AnyData.pm Wed Oct 31 13:08:37 2001 @@ -63,7 +63,7 @@ # PARSE EXTRA STRINGS IN DSN HERE # Process attributes from the DSN; we assume ODBC syntax # here, that is, the DSN looks like var1=val1;...;varN=valN - my $var; + my ($var, $defaultselector, %defaultflags); $dbh->STORE('f_dir','./'); foreach $var (split(/;/, $dbname)) { ####################################################### @@ -80,9 +80,13 @@ ####################################################### # Patch from Wes Hardaker ####################################################### - } elsif( $var =~ m/^\s*?default=(\S+)/i ){ - # Default catalog selector to use - $dbh->func('__default',$1, 'ad_catalog'); + } elsif( $var =~ m/^\s*?ad_default=(\S+)/i ){ + # Default catalog selector to use + $defaultselector = $1; + } elsif( $defaultselector && + $var =~ m/^\s*?ad_${defaultselector}_(\S+)=(\S+)/i ) { + # Add to selector flags. + $defaultflags{$1} = $2; ####################################################### } elsif ($var =~ /(.*?)=(.*)/) { my $key = $1; @@ -90,6 +94,10 @@ $dbh->STORE($key, $val); } } + if ($defaultselector) { + $dbh->func('__default', $defaultselector, '', \%defaultflags, + 'ad_catalog'); + } ### $dbh->func('read_catalog_from_disk'); $dbh; } @@ -520,7 +528,7 @@ my($self, $data, $fields) = @_; my $requested_cols=[]; my @rc = $data->{f_stmt}->columns(); - push @$requested_cols, $_->{column} for @rc; + push @$requested_cols, $_->{name} for @rc; unshift @$fields, $requested_cols; $self->{ad}->push_row(@$fields); 1;