|
Righetto, fa�a algumas altera��es no seu c�digo, no seu segundo select ao inv�s
de voc� usar SqlFetchRow use SqlFetchNext imagino que voc� s� esta precisando do
conte�do da sua variavel into :vsDcrPrd para um posteiror tratamento dentro do
seu relat�rio, lembrando de colocar um Return False no mesmo n�vel do seu
If SqlFetchNext( shMapGerEtq, vnErroRpt ) se esse � o seu handle principal
que controla o fim do relat�rio.
Obs: Tamb�m tive o mesmo problema em um
relat�rio, s� que meu segundo select estava no Report_Detail e eu usava o
SqlImmediate, como tinha outros relat�rios com as mesmas caracteristicas e n�o
apresentavam o erro, verifiquei que o campo que estava trazendo neste
select era do tipo Long String, mudei para SqlPrepareAndExecute e funcionou,
porque o problema ocorria tamb�m n�o sei. Espero ter
ajudado!
-Mensagem original----- De: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]Em nome de Righetto Enviada
em: ter�a-feira, 1 de julho de 2003 19:04 Para: Lista
Centura Assunto: [sqlwin] SAM_ReportFetchNext
Boa tarde...
Estou enfretando o seguinte problema, quando
tento executar o prepareandexecute dentro do fetchnext ele me retorna o erro
20055 conex�o ocupada com resultado de outro hstmt.
Ja tive esse erro (20055)
em outras aplica��es e resolvi simplesmente n�o utilizando sqlimmediate e
"isolando" os cursores, mas neste caso eu nem utilizo sqlimmediate e os
cursores est�o isolados.
N�o estamos conseguindo estabelecer um crit�rio para
evitar esse erro, ja mandei algumas mensagens anteriormente para lista e
recebi informa��es bastantes �teis, mas eu n�o consegui formar uma id�ia clara
do porque do erro e nem como evita-lo, alguma
dica?
Obs: Esse erro ocorre quando estou dentro de uma
estrutura de relat�rio (SAM_ReportFetchNext), em qualquer outro lugar na
aplica��o a utiliza��o de dois cursores endentados funciona
perfeitamente.
Desde j� agrade�o.
Utilizo Centura 1.1 e sqlserver 2000
On SAM_Create
Call
SqlConnect( shMapGerEtq )
Call SqlSetIsolationLevel( shMapGerEtq, 'RL'
) Call
SqlSetParameter( shMapGerEtq, DBP_AUTOCOMMIT, FALSE, ''
) Call
SqlSetParameter( shMapGerEtq, DBP_PRESERVE, TRUE, '' )
Call SqlSetResultSet( shMapGerEtq, TRUE
)
! Call SqlConnect(
shAux ) Call
SqlSetIsolationLevel( shAux, 'RL' )
Call SqlSetParameter( shAux, DBP_AUTOCOMMIT, FALSE, ''
) Call
SqlSetParameter( shAux, DBP_PRESERVE, TRUE, '' )
Call SqlSetResultSet( shAux, TRUE
)
On SAM_ReportStart
Call
SqlPrepare( shMapGerEtq, ' comando select '
On SAM_ReportFetchInit
Call
SqlExecute( shMapGerEtq
)
On SAM_ReportFetchNext
If SqlFetchNext( shMapGerEtq, vnErroRpt )
Call SqlPrepareAndExecute( shAux,
'
SELECT
DCRPRD
FROM
TABELA056
INTO
:vsDcrPrd
WHERE
CODPRD =:vnCodPrd ' )
!
Call SqlFetchRow( shAux, vnRow, vnErro
) !
Return
TRUE
|