erro DataSet not in edit or insert mode
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:
*Obs, se eu colocar em vez de abrir o Form de Consulta (ConCliente) abrir o de Cadastro, ele funciona normal sem erro... why??
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
Curtidas 0
Respostas
Marcos Oliveira
17/02/2014
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:
Att,
Marcos
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
GOSTEI 0
Jeferson Araujo
17/02/2014
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
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
GOSTEI 0
Ricardo
17/02/2014
Onde esta sendo setado o caminho no dataset? tem que fechar o dataset, setar o caminho, depois abrir.
GOSTEI 0