Fórum TFDQuery: Cannot perform this operation on a closed dataset. #618799

09/10/2022

0

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

Responder

Post mais votado

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...

Lucas Santato

Lucas Santato
Responder

Gostei + 1

Mais Posts

29/10/2022

João

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!
Responder

Gostei + 1

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

Aceitar