>
> On Thu, Mar 13, 2003 at 01:09:25AM -0500, Jeff Urlwin wrote:
> > >
> > >
> > > Yes. You're right that NAME_uc/NAME_lc and their *_hash
> > > variants need to be cleared from the cache. May actually be
> > > good to work the other way round... delete all cached
> > > attributes except a specific set.
> >
> > [Michael, I thought this might be interesting to you, if
> you haven't
> > done this already]
> >
> > Here's what I've done, but it looks pretty ugly to me. I
> would have
> > thought it would be simpler. Cced dbi-dev as I thought
> others doing
> > multiple result sets might be interested in this.
> Basically, I wanted
> > to use dbih_inner(), but it's unavailable as it's a DBI
> static function.
>
> There are other ways to get the inner handle, but they are
> very rarely needed as the DBI arranges for all driver methods
> to be invoked *on* the inner handle. So how come you're not
> just using that handle you were called on?
I tried that, and it crashed badly. But I must have done something wrong,
so I 'll try that again.
(I *knew* it looked ugly :)
Jeff
>
> > > > I'm looking into it. I clear out all the NAME attributes,
> > > but must be
> > > > missing the cache from the NAME_uc or NAME_lc.
> > > >
> > > > Jeff
> > > >
> > > > >
> > > > > Jeff,
> > > > >
> > > > > On your script, if you change the fetchrow_hashref to
> > > > > fetchrow_hasref{'NAME_lc'} or
> fetchrow_hasref{'NAME_uc'} it fails
> > > > > just like mine.
> > > > >
> > > > > if you run with no argument or just NAME, it works fine.
> > > > >
> > > > > Cheers.
> > > > > Iso
> > > > >
> > > > > -----Original Message-----
> > > > > From: Jeff Urlwin [mailto:[EMAIL PROTECTED]
> > > > > Sent: Monday, March 10, 2003 8:53 AM
> > > > > To: Ismail Mutlu; [EMAIL PROTECTED]
> > > > > Subject: RE: Multiple Select statements in an SP and
> > > > > fetchrow_hashref
> > > > >
> > > > >
> > > > > Try the attached file and let me know how it runs. Set
> > > > > DBI_DSN,DBI_USER and DBI_PASS environment variables first.
> > > > >
> > > > > If this doesn't produce good output, then:
> > > > > a) upgrade your SQLServer driver (MDAC 2.7). My SQL
> > > Server driver
> > > > > is 200.81.9030.04
> > > > > b) compare this script to what you are doing
> and see if you can
> > > > > make mine break.
> > > > >
> > > > > Jeff
> > > > >
> > > > > > -----Original Message-----
> > > > > > From: Ismail Mutlu [mailto:[EMAIL PROTECTED]
> > > > > > Sent: Monday, March 10, 2003 11:23 AM
> > > > > > To: Jeff Urlwin;
> [EMAIL PROTECTED]
> > > > > > Subject: RE: Multiple Select statements in an SP and
> > > > > fetchrow_hashref
> > > > > >
> > > > > >
> > > > > > Jeff,
> > > > > > I have DBI 1.34 and DBD::ODBC 1.04 installed.
> > > > > >
> > > > > > Thanks.
> > > > > > Iso
> > > > > >
> > > > > > -----Original Message-----
> > > > > > From: Jeff Urlwin [mailto:[EMAIL PROTECTED]
> > > > > > Sent: Saturday, March 08, 2003 3:28 AM
> > > > > > To: Ismail Mutlu;
> [EMAIL PROTECTED]
> > > > > > Subject: RE: Multiple Select statements in an SP and
> > > > > fetchrow_hashref
> > > > > >
> > > > > >
> > > > > > >
> > > > > > > Hello list,
> > > > > > >
> > > > > > > I am using DBD::ODBC against SQL 2000 server. In my
> > > script I am
> > > > > > > executing a Stored Procedure which has two select
> statements
> > > > > > > selecting from two different tables. I am looping
> through to
> > > > > > > grep the output of the SP using fetchrow_hashref,
> each time I
> > > > > get a row I
> > > > > > > print the keys and the values of the hash. The first hash
> > > > > > > prints fine(with the column names from the first
> table) , but
> > > > > > > the second one inherits the hash keys from the
> first one(the
> > > > > > > values
> > > > > are correct
> > > > > > > tough). I tried 'undef'ing the hashref and the hash but
> > > > > still wont
> > > > > > > work. Here is my code:
> > > > > > >
> > > > > > >
> > > > > >
> > > > > > What version of DBD::ODBC are you using? If you are *not*
> > > > > > using 1.04 and DBI 1.32, stop and get them. I believe these
> > > issues have
> > > > > > been found and fixed.
> > > > > >
> > > > > > Regards,
> > > > > >
> > > > > > Jeff
> > > > > >
> > > > > > >
> > > > > > >
> -------------------------------------CODE-------------------
> > > > > > > --
> > > > > > > ------------------------------------------
> > > > > > > $sth1->execute();
> > > > > > > while ( $sth1->{Active}) {
> > > > > > > do {
> > > > > > > my $rowRef;
> > > > > > > for (my $rowRef ;$rowRef=
> > > > > $sth1->fetchrow_hashref('NAME_lc');
> > > > > > > ) {
> > > > > > > my %outputData = %$rowRef; undef $rowRef;
> > > > > > > print 'outputData ', Dumper(\%outputData), "\n";
> > > > > > > undef %outputData;
> > > > > > > }
> > > > > > > } while ($sth1->{odbc_more_results});
> > > > > > > }
> > > > > > >
> ------------------------------------------------------------
> > > > > > > --
> > > > > > > ------------------------------------------
> > > > > > > It gives me:
> > > > > > >
> > > > > > >
> --------------------------------OUTPUT----------------------
> > > > > > > --
> > > > > > > -----------------------------------
> > > > > > > outputData $VAR1 = {
> > > > > > > 'address' => 'My Address',
> > > > > > > 'acctnumber' => '321'
> > > > > > > };
> > > > > > >
> > > > > > > outputData $VAR1 = {
> > > > > > > '' => 'iso ',
> > > > > > > 'address' => '123',
> > > > > > > 'acctnumber' => '123'
> > > > > > > };
> > > > > > >
> ------------------------------------------------------------
> > > > > > > --
> > > > > > > ------------------------------------------
> > > > > > > Output for the first select is correct, but the second
> > > > > one shold be:
> > > > > > > outputData $VAR1 = {
> > > > > > > 'name' => 'iso ',
> > > > > > > 'Number' => '123',
> > > > > > > 'acctnumber' => '123'
> > > > > > > };
> > > > > > >
> > > > > > > If I run the following, the out put is correct:
> > > > > > >
> -------------------------------------CODE-------------------
> > > > > > > --
> > > > > > > ------------------------------------------
> > > > > > > $sth1->execute();
> > > > > > > while ( $sth1->{Active}) {
> > > > > > > do {
> > > > > > > my $rowRef;
> > > > > > > while (my $p = $sth1->fetchrow_hashref()) {
> > > > > > > print "new select \n";
> > > > > > > while (my ($key, $value) = each %$p) {
> > > > > > > print "\t $key : $value\n";
> > > > > > > }
> > > > > > > print "\n\n";
> > > > > > > } while ($sth1->{odbc_more_results});
> > > > > > > }
> > > > > > >
> ------------------------------------------------------------
> > > > > > >
> > > > > > >
> > > > > > > Any Ideas,
> > > > > > >
> > > > > > > Cheers!.
> > > > > > > Iso
> > > > > > > _______________________________________________
> > > > > > > Perl-Win32-Database mailing list
> > > > > > > [EMAIL PROTECTED]
> > > > > > > To unsubscribe:
> http://listserv.ActiveState.com/mailman/mysubs
> > > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > > >
> > > >
> > > >
> > > >
> > > >
> > >
> >
> >
> >
>