|
Righetto,
Eu n�o costumo utilizar a fun��o SqlFetchRow, pois
j� tive alguns problemas insol�veis por causa dela.
N�o sei se � bug do Centura, mas j� conversei com
v�rios programadores e a maioria j� teve problemas e n�o a utilizam
tbm.
Resolvi adaptar todas as situa��es para utilizar
sempre o SqlFetchNext e nunca mais tive esse tipo de problema.
Vc poderia fazer um teste pra ver se resolve o seu
caso.
Em vez de 'Call SqlFetchRow( shAux, vnRow, vnErro
)", vc poderia testar com "Call SqlFetchNext( shAux, vnErroRpt )".
----- Original Message -----
Sent: Tuesday, July 01, 2003 7:04
PM
Subject: [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
|