TFDQuery: Cannot perform this operation on a closed dataset.
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;
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
Curtidas 1
Melhor post
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
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