Attemp to reopen a open cursor.

Delphi

03/06/2004

Alguem ja viu esse erro??? Acontece quando abro um dataset em tempo de execução...

DataSet.Open;

O que fazer?

Grato.


G1b4

G1b4

Curtidas 0

Respostas

Paulo_amorim

Paulo_amorim

03/06/2004

Olá

Seila, só interpretando o erro, parece (literalmente) que vc está reabrindo um cursor jah aberto...

Vc já tentou colocar um DataSet.Close antes?

DataSet.Close;
DataSet.Open;

Até+


GOSTEI 0
G1b4

G1b4

03/06/2004

Caro Paulo, eu jah fiz isso...

Na minha aplicação eu fecho e depois o abro, pois o SQL possue parametros....

:( :( :( :( :( :( :( :(

Mas agradeço pela ajuda...


GOSTEI 0
Assis

Assis

03/06/2004

Caro Paulo, eu jah fiz isso...

Na minha aplicação eu fecho e depois o abro, pois o SQL possue parametros....

:( :( :( :( :( :( :( :(

Mas agradeço pela ajuda...




Amigo você conseguiu resolver o problema? Como conseguiu?
GOSTEI 0
Anderson Oliveira

Anderson Oliveira

03/06/2004

Caro Paulo, eu jah fiz isso...

Na minha aplicação eu fecho e depois o abro, pois o SQL possue parametros....

:( :( :( :( :( :( :( :(

Mas agradeço pela ajuda...




Amigo você conseguiu resolver o problema? Como conseguiu?




Resolvi mudando o select dentro de cada query mesmo que fosse a mesma consulta, mudava o nome do parametro, por ex:
Query 01 : SELECT * FROM MOV_ESTOQUE where CODIGO = :pcod'
Query 02 : SELECT * FROM MOV_ESTOQUE where CODIGO = :pcod0'

E assim sucessivamente...
GOSTEI 0
Arthur Heinrich

Arthur Heinrich

03/06/2004

Geralmente, quando se pretende utilizar uma query múltiplas vezes, utilizando parâmetros, precisamos utilizar o "prepare".

- Seta o texto da query
- Executa o método Prepare

loop
- Seta os parâmetros
- Open

Se você executa o close, o cursor é encerrado, reduzindo a performance.

O método Prepare avisa para o driver/banco, que o cursor deve ser mantido aberto para múltiplas execuções com parâmetros diferentes.
GOSTEI 0
POSTAR