GARANTIR DESCONTO

Fórum Erro Cannot perform this operation on a closed dataset #481037

02/06/2014

0

Bom dia
Estou fazendo uma form de cadastro de profissionais com uma tabela do firebird utilizando Client data set porem me da o seguinte 'Cannot perform this operation on a closed dataset' segue parte do código

procedure TFormCadProfissionais.FormCreate(Sender: TObject);

begin

DM.SqlProfissionais.Active := True;
DM.CdsProfissionais.Active := True; // ERRO

end;

procedure TFormCadProfissionais.FormClose(Sender: TObject;
var Action: TCloseAction);

begin

DM.SqlProfissionais.Active := False;
DM.CdsProfissionais.Active := False;


action := caFree;

end;
Silvia Pereira

Silvia Pereira

Responder

Post mais votado

26/06/2014

Bom dia Silvia...

Que bom que você encontrou o erro.
Mas só lembrando que o uso do "Select * From..." não é recomendado e nem performático.
O ideal é você listar somente os campos em que irá precisar.
Flw... ;)

Marcos Gandin

Marcos Gandin
Responder

Gostei + 2

Mais Posts

02/06/2014

Jefferson Rudolf

Citação:
procedure TFormCadProfissionais.FormCreate(Sender: TObject);

begin

DM.SqlProfissionais.Active := True;
DM.CdsProfissionais.CreateDataSet

end;

procedure TFormCadProfissionais.FormClose(Sender: TObject;
var Action: TCloseAction);

begin

DM.SqlProfissionais.Active := False;
DM.CdsProfissionais.Close


action := caFree;

end;


Tenta assim, Silvia

T+
Responder

Gostei + 0

02/06/2014

Silvia Pereira

Oi Jefferson, tentei como você sugeriu mas o erro continua e aparece esta mensagem tb:

'Project ProjectPadis.exe raised exception class EDatabaseError with message 'Token unknown -
line 1, column 9 from' Process Stopped. Use Step or Run to continue'

e dando sequencia vem essa: 'Token unknown - line 1, column 9' e por ultimo essa:

Project ProjectPadis.exe raised exception class EDatabaseError with message
'CdsProfissionais: Cannot perform this operation on a closed dataset'.

Tenho mais duas tabelas de cadastro que funcionam perfeitamente não entendo o por que desse erro.





Citação:
procedure TFormCadProfissionais.FormCreate(Sender: TObject);

begin

DM.SqlProfissionais.Active := True;
DM.CdsProfissionais.CreateDataSet // erro

end;

procedure TFormCadProfissionais.FormClose(Sender: TObject;
var Action: TCloseAction);

begin

DM.SqlProfissionais.Active := False;
DM.CdsProfissionais.Close


action := caFree;

end;


Tenta assim, Silvia

T+
Responder

Gostei + 0

02/06/2014

Cauê Nishijima

Já tentou da seguinte forma?

procedure TFormCadProfissionais.FormCreate(Sender: TObject);
begin
   DM.CdsProfissionais.Open;
end;

procedure TFormCadProfissionais.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
   DM.CdsProfissionais.Close;
   action := caFree;
end;
Responder

Gostei + 0

02/06/2014

Silvia Pereira

Já tentou da seguinte forma?

procedure TFormCadProfissionais.FormCreate(Sender: TObject);
begin
   DM.CdsProfissionais.Open;
end;

procedure TFormCadProfissionais.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
   DM.CdsProfissionais.Close;
   action := caFree;
end;


Acabei de tentar, continua com o mesmo erro.
Responder

Gostei + 0

25/06/2014

Silvia Pereira

Agradeço a ajuda, que tive, descobri o erro é um erro ridículo mas vou postar, pois alguém pode precisar na propriedade do sqlDataSet "command text digitei : select from NOME DA TABELA order by CAMPO.CAMPO" faltou apenas * sim isso mesmo o ASTERISCOS, "select * from NOME DA TABELA order by CAMPO.CAMPO""



"
Responder

Gostei + 0

26/06/2014

Silvia Pereira

Bom dia Silvia...

Que bom que você encontrou o erro.
Mas só lembrando que o uso do "Select * From..." não é recomendado e nem performático.
O ideal é você listar somente os campos em que irá precisar.
Flw... ;)
Oi Marcos é que estou fazendo o TCC ai tem que ser como o professor orientou,
mas vc poderia me passar algum exemplo?
Obrigada.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar