RE: Attempt to initiate a new SQL Server operation with results pending.
- From: jurlwin@xxxxxxxxxxxxxx (Jeff Urlwin)
- Date: Sun, 26 Jun 2005 17:54:06 -0400
Please read DBD::ODBC pod. Specifically the section on the odbc_cursortype.
Jeff
> -----Original Message-----
> From: Daniel Kasak [mailto:dkasak@xxxxxxxxxxxxxxxxxxxx]
> Sent: Wednesday, June 22, 2005 1:22 AM
> To: Jeff Urlwin; dbi-users@xxxxxxxx
> Subject: Re: Attempt to initiate a new SQL Server operation
> with results pending.
>
>
> Jeff Urlwin wrote:
>
> >>Hi all.
> >>
> >>I've just ( barely ) managed to get DBD::ODBC ==> UnixODBC
> >>==> FreeTDS
> >>working on my system.
> >>
> >>I took a Perl-Gtk2 app which has been running fine, and
> >>substituted the
> >>old DBD::Sybase connection with the DBD::ODBC one, and then
> >>discovered I
> >>could only run one query on SQL Server, and then all
> >>subsequent queries
> >>gave:
> >>
> >>DBD::ODBC::st execute failed: [unixODBC][FreeTDS][SQL
> >>Server]Attempt to
> >>initiate a new SQL Server operation with results pending.
> >>(SQL-07005)(DBD: st_execute/SQLExecute err=-1)
> >>
> >>Damn!
> >>
> >>So I started going through my code and adding $sth->finish after all
> >>recordset operations, and that seems to be fixing things.
> >>
> >>
> >
> >Please see if you can provide a small, self-contained
> example. (i.e.
> >one that creates tables and inserts data, then reproduces
> the problem,
> >such that it can be run simply (or, feel free to add it to
> some of the
> >DBD::ODBC t/20sqlserver.t tests, if you feel slightly more
> inclined),
> >then I can refine the implementation to ensure that you
> don't have to
> >call finish each time. It's supposed to be that way, but if
> it's not
> >working, I'd like to know.
> >
> >
> >
> It's been quite a while, but I've gotten around to building
> an example application. The application gives the 'Attempt to
> initiate a new SQL Server operation with results pending.'
> error and then exits when it can't fetch any data. It
> *should* fetch each row and dump the values to the console.
>
> I'm using DBD::ODBC, compiled against UnixODBC & FreeTDS. The
> code below works if I use DBD::Sybase instead of DBD::ODBC
>
> You'll have to create a 'test' database in SQL Server, and
> change the password in the script below. Other than that (
> and having a working DBD::ODBC setup ), it should be right to go.
>
> ---
>
> #!/usr/bin/perl
>
> use strict;
> use DBI;
>
> # Connect to SQL Server
> my $dbh = DBI->connect("dbi:ODBC:SQLServer", 'sa',
> '_ENTER_PASSWORD_HERE', {PrintError => 1})
> || die "Database connectin not made: $DBI::errstr";
>
> $dbh->do("use test");
>
> $dbh->do("create table some_table (
> ID integer identity (1,1),
> CompanyName varchar(50),
> SomeNote varchar(255)
> )");
>
> my $sth = $dbh->prepare("insert into some_table (
> CompanyName, SomeNote
> ) values ( ?, ? )");
>
> foreach my $company (
> [ "McDonalds", "Wants monopoly on fast
> foods" ],
> [ "Monsanto", "All-round evil company in
> food production" ],
> [ "BAE Systems", "Manufactures Weapons of
> Mass Destruction (TM)" ],
> [ "Advanta BV", "Poisons food
> supply with GM
> products" ]
> )
> {
> $sth->execute( $$company[0], $$company[1] );
> }
>
> $sth = $dbh->prepare("select ID from some_table") || die $dbh->errstr;
>
> $sth->execute || die $dbh->errstr;
>
> while (my $row = $sth->fetchrow_hashref) {
>
> my $little_sth = $dbh->prepare("select * from some_table
> where ID=" . $row->{ID});
> $little_sth->execute;
> my $little_row = $little_sth->fetchrow_array;
>
> print "Got some data: \n"
> . " Company: " . $$little_row[0] . " ... Note: " .
> $$little_row[1];
>
> }
>
> ---
>
> --
> Daniel Kasak
> IT Developer
> NUS Consulting Group
> Level 5, 77 Pacific Highway
> North Sydney, NSW, Australia 2060
> T: (+61) 2 9922-7676 / F: (+61) 2 9922 7989
> email: dkasak@xxxxxxxxxxxxxxxxxxxx
> website: http://www.nusconsulting.com.au
>
.
- Follow-Ups:
- Re: Attempt to initiate a new SQL Server operation with results pending.
- From: Daniel Kasak
- Re: Attempt to initiate a new SQL Server operation with results pending.
- References:
- Re: Attempt to initiate a new SQL Server operation with results pending.
- From: Daniel Kasak
- Re: Attempt to initiate a new SQL Server operation with results pending.
- Prev by Date: RE: Cannot find DBD-Oracle.ppd
- Next by Date: RE: Oracle cursor help
- Previous by thread: Re: [dbi] Re: Attempt to initiate a new SQL Server operation with results pending.
- Next by thread: Re: Attempt to initiate a new SQL Server operation with results pending.
- Index(es):
Relevant Pages
|
|