Re: rowcount not available? [NC]

Cedric ROUVRAIS <[email protected]>
Newsgroups gmane.comp.db.tds.freetds
Message-ID <OFDCB83ECD.4BAAF75F-ON85257618.0071732C-85257618.0072139C@us.world.socgen>
Hi James,

I have found the issue and contrarily to what I thought, it isn't dblib. i
don't think so.

The initial script running on Sybase, simplified :o)

exec > aa.lst 2>&1
echo start of the script
isql -U user -P pwd -S server -D database<<EOF
set rowcount 10
insert table_dst
select * from table_src
go
EOF
echo end of the script

The correct script

exec > aa.lst 2>&1
echo start of the script
isql -U user -P pwd -S server -D database<<EOF
set rowcount 10
go
insert table_dst
select * from table_src
go
EOF
echo end of the script

In the corrected script I get row count. Don't know why in the first I
don't

Sorry. just found this.

a++ Cedric


|------------------------------                                            
|            "James K. Lowden"                                             
|            <jklowden@freetds                                             
|            .org>                                                         
|            Sent by:                                                      
|            freetds-bounces@l                                             
|            ists.ibiblio.org                                              
|                                                                          
|                                                                          
|            08/20/2009 01:38                                              
|            PM                                                            
|                                                                          
|                                                                          
|            Please respond to                                             
|                 FreeTDS                                                  
|            Development Group                                             
|            <[email protected]                                             
|               iblio.org>                                                 
|                                                                          
|                                                                          
                                                                           
                                                                           
                                                                        To 
                                               FreeTDS Development Group   
                                               <[email protected]> 
                                                                        cc 
                                                                           
                                                                   Subject 
                                               Re: [freetds] rowcount not  
                                               available? [NC]             
                                                                           
                                                                           
                                                                           
                                                                           
                                                                           
                                                                           




Cedric ROUVRAIS wrote:
> When I execute select @@ROWCOUNT I get
> the correct count that is to say. Why would the rowcount not be
> available ?

The server knows the rowcount after a statement completes.  For
non-SELECT, that's when control returns to the application after
dbsqlexec(). For SELECT, that's after the last row is fetched by client,
when dbnextrow() returns NO_MORE_ROWS.  (That is why @@rowcount is always
right: you can't select @@rowcount until the prior statement completes.)

Whether or not the rowcount is returned to the client depends on a
connection option: SET NOCOUNT {ON|OFF}.

If you think db-lib is wrong, that it reports the rowcount as unavailable
when in fact it *is* available, first confirm: using TDSDUMP, see if a
rowcount packet was sent.

http://www.freetds.org/tds.html#t253

The DONE packet should have the "rowcount valid" bit set, and the rowcount
should be correct.  If both those are true for your packet, dbrows()
should succeed.

HTH.

--jkl
_______________________________________________
FreeTDS mailing list
[email protected]
http://lists.ibiblio.org/mailman/listinfo/freetds



*************************************************************************
This message and any attachments (the "message") are confidential, intended 
solely for the addressee(s), and may contain legally privileged information.  
Any unauthorised use or dissemination is prohibited.  E-mails are susceptible 
to alteration.  Neither SOCIETE GENERALE nor any of its subsidiaries or 
affiliates shall be liable for the message if altered, changed or falsified.
*************************************************************************
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.