No subject


Fri May 2 19:13:14 EDT 2003


and give it a go.  I think you'll find you're done in 30 minutes.  

Be not reluctant, for Perl is thy friend.  :)

> Also, something interesting to note.  I get statements when using tds 
> version 7.0.
> 
> Changed Database context to Bugdb.
> Change Default Language to us_English.
> 
> I don't get the second one when using the Tds_version 4.2.
> 
> I don't know if that has any bearing on the problem.

It's arcania.  The server doesn't generate that message when connected to by
a TDS 4.2 client, and does with a TDS 7.0 client.  You don't want to know
why.  But Brian could tell you in excruciating detail. 

Regards, 

--jkl


> >I doubt FreeTDS is writing anything directly to standard 
> error; my code
> >grepping confirms Brian's recollection.  I could be wrong; I 
> don't have a
> >Solaris box set up to test with.
> >
> >The message you're seeing about changing databases is 
> generated by the
> >server.  MySQL doesn't generate such a message; that's why 
> you don't see it
> >from them.
> >
> >A few DBI questions for you.
> >
> >*	What means "PrintError => 10" in your sample code?
> >*	Isn't PrintError a boolean?
> >*	And doesn't PrintError cause messages from the server 
> to be printed
> >(to the screen)?
> >*	Does changing that to "PrintError => 0" inhibit the message?
> >
> >And a suggestion.  Please try this:
> >
> >Insert a pair of raiserror statements into your code, thus:
> >
> >  raiserror( "hello world", 1,1 )
> >  raiserror( "hello error", 18,1 )
> >
> >Execute the query and see what you see.  If you don't see 
> anything, then we
> >need to look further inside FreeTDS.  If you do see output 
> on your screen,
> >then perl is passing ordinary messages from the server to 
> your screen.  In
> >that event of course you'd want to set up your own handler.
> >
> >The only thing that confuses me is, the DBD::Sybase change 
> log refers to
> >suppressing messages with severity < 10 by default back in 
> Release 0.21.
> >According to that, you won't see such messages (of which 
> "changed database"
> >is one) *unless* you install an error handler.
> >
> >Let us know how you fare, and we can go from there.
> >
> >Regards,
> >
> >--jkl
> >
> > > From: Jonathan Hirschi [mailto:jhirschi at hotmail.com]
> > > Sent: June 17, 2002 5:50 PM
> > >
> > > I started out using 0.53, then upgraded to a cvs snapshot.
> > > Both versions
> > > have the same result.  I'm using DBD:Sybase 0.93 with Perl 5
> > > on a solaris 8
> > > machine.  The ms Sql Server 2000 is on a windows 2000
> > > machine.  There is no
> > > number associated with the output, it is as if it's just
> > > letting me know.
> > >
> > > the output from that test script i sent is below.
> > >
> > > # perl test.pl
> > > Changed database context to 'bugdb'.
> > > 1 1 jhirschi blah     May 29 2002 06:01PM
> > > 2 1 biggermork blah blah blah blah blah May 29 2002 06:01PM
> > > 3 1 blah blah blah blah blah blah
> > > 4 1 blah blah balh blah blah
> > > 5 1 ashahabi HEAD test2 soldev01.insevo.com NONE  test
> > >
> > > --------------- snip -----------
> > >
> > > Is this a problem with configuration with the sybase driver
> > > or the database?
> > > is it not something that freetds is doing?  Thanks for the help.
> > >
> > > Jon
> > >
> > > >John,
> > > >
> > > >FreeTDS simply forwards messages from the server to the 
> application
> > > >(perl/DBD::Sybase in this case).  Many applications 
> supress the 5701
> > > >message, sqsh and DBD::Sybase both do for instance.  There
> > > was an issue on
> > > >some big endian platforms with TDS 4.2, but IIRC that has
> > > been fixed for
> > > >some time.  what platform are you running on, are you using
> > > 0.53 or a CVS
> > > >snapshot and is there a message number (other than 5701)
> > > included with the
> > > >message?
> > > >
> > > >Brian
> > > >
> > > >On Mon, 17 Jun 2002, Jonathan Hirschi wrote:
> > > >
> > > > >
> > > > > James,
> > > > >
> > > > > thanks for your help.  I appreciate you taking time 
> to answer my
> > > >questions.
> > > > > I am using all of the defaults as far as freetds and
> > > error handlers are
> > > > > concerned.  I don't have the same problem with other
> > > drivers (mysql).  I
> > > > > just seem to have this problem in connection with the
> > > sybase driver and
> > > > > freetds.  the code below always prints out the "Changed
> > > database context
> > > >to
> > > > > bugdb".  The configuration for freetds.conf is the
> > > default configuration
> > > >for
> > > > > freetds.  I have this same problem no matter whether i
> > > specify version
> > > >4.2
> > > > > or 7.0.  There are no error codes being sent out, as far
> > > as i can see.
> > > > >
> > > > > thanks,
> > > > >
> > > > >
> > > > > #!/usr/bin/perl
> > > > > #
> > > > > use DBI;
> > > > >
> > > > > my $dbh = DBI->connect("dbi:Sybase:server=devdb",
> > > 'cvsuser', 'test',
> > > > > {PrintError => 10});
> > > > >
> > > > > die "Unable for connect to server $DBI::errstr"
> > > > >     unless $dbh;
> > > > >
> > > > > my $rc;
> > > > > my $sth;
> > > > >
> > > > > $sth = $dbh->prepare("select * from tblcvstransaction");
> > > > > if($sth->execute) {
> > > > >     while(@dat = $sth->fetchrow) {
> > > > >                 print "@dat\n";
> > > > >     }
> > > > > }
> > > > >
> > > > >
> > > > > > > From: Jon Hirschi [mailto:jhirschi at hotmail.com]
> > > > > > > Sent: June 17, 2002 3:06 PM
> > > > > > >
> > > > > > > Is there any way to turn off the message?
> > > > > > >
> > > > > > > the message being sent to the screen is "changed database
> > > > > > > context to <name>"
> > > > > >
> > > > > >Jon,
> > > > > >
> > > > > >I checked the message handler (src/ctlib/ctutil.c).  No
> > > writes stderr,
> > > >no
> > > > > >printf at all.
> > > > > >
> > > > > >Have you set an error handler in your perl code?  That
> > > would be the
> > > >place
> > > > > >to
> > > > > >trap the message (by number) and decide what to print,
> > > if anything.  If
> > > >you
> > > > > >have set one, is it being called for other messages,
> > > just not this one?
> > > > > >
> > > > > >Regards,
> > > > > >
> > > > > >--jkl



More information about the FreeTDS mailing list