Fórum erro DataSet not in edit or insert mode #470261

17/02/2014

0

Olá, possuo uma tela de cadastro de serviço e um botão que abre a consulta de cliente para buscar o mesmo,
anteriormente eu tinha essa mesma função em uma tela de cadastro de cliente, a qual abria a consulta mas agora aparece o erro dizendo que o Dataset não está no modo de edição ou inserção.

segue o código que eu uso para abrir a tela de consulta:

procedure TFrmCadServico.btnClienteClick(Sender: TObject);
var
  FrmAux: TFrmConCliente;
begin
  FrmAux := TFrmConCliente.Create(nil);
  FrmAux.FormStyle := fsNormal;
  FrmAux.Visible := False;
  FrmAux.ShowModal;
  DTM.dsServicoser_cliente.AsInteger := DTM.dsClientecli_codigo.AsInteger;
  DTM.dsCliente.Close;
  DTM.dsCliente.Open;

  FrmAux.Free;
end;


*Obs, se eu colocar em vez de abrir o Form de Consulta (ConCliente) abrir o de Cadastro, ele funciona normal sem erro... why??
Jeferson Araujo

Jeferson Araujo

Responder

Posts

17/02/2014

Marcos Oliveira

Jeferson, o erro acontece, porque você está gravando na tabela sem dar um Append ou Edit.
Se você estiver realmente adicionando um novo registro, teria que ser conforme abaixo:

procedure TFrmCadServico.btnClienteClick(Sender: TObject);
var
  FrmAux: TFrmConCliente;
begin
  FrmAux := TFrmConCliente.Create(nil);
  FrmAux.FormStyle := fsNormal;
  FrmAux.Visible := False;
  FrmAux.ShowModal;
  DTM.dsServicoser_cliente.Append; // Ou DTM.dsServicoser_cliente.Edit, de acordo com sua necessidade
  DTM.dsServicoser_cliente.AsInteger := DTM.dsClientecli_codigo.AsInteger;
  DTM.dsServicoser_cliente.Post;  // Efetivar a gravação com um post.
  DTM.dsCliente.Close;
  DTM.dsCliente.Open;
 
  FrmAux.Free;
end;


Att,

Marcos
Responder

Gostei + 0

17/02/2014

Jeferson Araujo

Valeu, mas eu já tentei fazer isso e não deu certo, mas eu só quero abrir a tela de consulta (a partir da de cadastro), capturar aquele registro que eu filtrei e mostrar na tela de cadastro,

tipo, abro o cadastro, aí tem um botão que leva até a consulta, eu faço a pesquisa pela tela de consulta e o que ele mostra no DBgrid da tela de consulta, mostrar na de cadastro tbm
Responder

Gostei + 0

17/02/2014

Ricardo

Onde esta sendo setado o caminho no dataset? tem que fechar o dataset, setar o caminho, depois abrir.
Responder

Gostei + 0

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

Aceitar