TFDQuery: Cannot perform this operation on a closed dataset.

Delphi

09/10/2022

Olá senhoras e senhores tudo bem, bom estou tentando rsrs a criar um "sisteminha" que faz um
cadastro de pessoa e salva o numero, e quero que por exemplo (65) 99472-6486 não seja repetido , vou
mostrar a parte do codigo do bt salvar

procedure TtfrmCadPessoa.btSaveClick(Sender: TObject);
begin

if edNome.Text='' then
begin
ShowMessage('INFORME O NOME!');
edNome.SetFocus;
Exit;
end;

if edTel.Text='' then
begin
ShowMessage('INFORME O TELEFONE!');
edTel.SetFocus;
Exit;
end;

cdsPessoa.Insert;
cdsVeriTel.Insert;

cdsVeriTel
.Open;

cdsVeriTel.Close;
cdsVeriTel.SQL.Add('SELECT TELEFONE FROM TAB_PESSOA');
cdsVeriTel.SQL.Add('WHERE TELEFONE = '+edTel.Text);
cdsVeriTel.Open();

if cdsPessoa.State=dsInsert then
begin
tfrmCadPessoa.qryGenIdPessoa.Close;
tfrmCadPessoa.qryGenIdPessoa.Open;
tfrmCadPessoa.cdsPessoaID_USUARIO.AsInteger:=tfrmCadPessoa.qryGenIdPessoaID.AsInteger;
end;

cdsPessoa.FieldByName('NOME').AsString :=(edNome.Text);
cdsVeriTel.FieldByName('TELEFONE').AsString :=(edTel.Text);

cdsPessoa.Post;
ShowMessage('INFORMAÇÕES ARMAZENADAS COM SUCESSO!');
edNome.Clear;
edTel.Clear;
end;
João

João

Curtidas 1

Melhor post

Lucas Santato

Lucas Santato

13/10/2022

No seu código está ocorrendo erros de lógica, você não pode passar um Insert para uma query sem ter dado um Open nela antes...
GOSTEI 1

Mais Respostas

João

João

09/10/2022

No seu código está ocorrendo erros de lógica, você não pode passar um Insert para uma query sem ter dado um Open nela antes...


Ok, vlw irei olhar aqui certinho!
GOSTEI 1
POSTAR