Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Providers
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-04-2014
novato_erick novato_erick is offline
Miembro
 
Registrado: ago 2010
Ubicación: Panamá
Posts: 396
Poder: 14
novato_erick Va por buen camino
borrar registro de un temporal ClientDataSet y dbgrid

Hola apreciados Chicos una pregunta:

Cree una Tabla temporal utilizando el ClientDataSet en el que agrego registro de consultas a una tabla, esta me trae ejemplo productos mostrándome los datos en un DBGRID.

la interrogante es:

trato de buscar el campo en el debrid haciendo esto pero no me está eliminando dicho registro lo que hace es eliminarme es el último registro:
Código Delphi [-]
procedure TfrmDevuelveProducto.btnDevuelveProductoClick(Sender: TObject);
var
  codigoP: String;
begin
  codigoP := Trim(eCodigoProducto.Text);
  frmFacturacionprincipal.dbgVentas.DataSource.DataSet.DisableControls;
  frmFacturacionprincipal.dbgVentas.DataSource.DataSet.First;
  while not frmFacturacionprincipal.dbgVentas.DataSource.DataSet.Eof do
   begin
    if frmFacturacionprincipal.dbgVentas.DataSource.DataSet
    ['cdsTempArtVentaCOD_BARRA'] = codigoP then
    frmFacturacionprincipal.dbgVentas.SelectedRows.CurrentRowSelected := True;
    frmFacturacionprincipal.dbgVentas.DataSource.DataSet.Next;
   end;
    frmFacturacionprincipal.dbgVentas.DataSource.DataSet.EnableControls;
    frmFacturacionprincipal.dbgVentas.DataSource.DataSet.Delete;
end;

espero poder lograr hacer esto en primera instancia.

la otra interrogante de este hilo es: si al borrar en el DBGRID me borrará el registro tambien del ClientDataSet que me almacena en momoria los datos? o tendría que hacer esto tambien:

Código Delphi [-]
procedure TfrmDevuelveProducto.btnDevuelveProductoClick(Sender: TObject);
var
  codigoP: String;
begin
  codigoP := Trim(eCodigoProducto.Text);

//Borramos en el DBGRID campo que busco pero en realidad no lo hace 
  frmFacturacionprincipal.dbgVentas.DataSource.DataSet.DisableControls;
  frmFacturacionprincipal.dbgVentas.DataSource.DataSet.First;
  while not frmFacturacionprincipal.dbgVentas.DataSource.DataSet.Eof do
   begin
    if frmFacturacionprincipal.dbgVentas.DataSource.DataSet
    ['cdsTempArtVentaCOD_BARRA'] = codigoP then
    frmFacturacionprincipal.dbgVentas.SelectedRows.CurrentRowSelected := True;
    frmFacturacionprincipal.dbgVentas.DataSource.DataSet.Next;
   end;
    frmFacturacionprincipal.dbgVentas.DataSource.DataSet.EnableControls;
    frmFacturacionprincipal.dbgVentas.DataSource.DataSet.Delete;

//Se borra en el ClientDataSet temporal cosa que no se si se hace haciendo solamente la eliminación del registro en el dbgrid
  dmlogicaventa.cdsTempArtVenta.First;
  while not dmlogicaventa.cdsTempArtVenta.Eof do
  begin
    if dmlogicaventa.cdsTempArtVenta.FieldByName('cdsTempArtVentaCOD_BARRA')
      .AsString = codigoP then
      dmlogicaventa.cdsTempArtVenta.Delete;
      dmlogicaventa.cdsTempArtVenta.Next;
  end;
     Close;
   end;
 end;
end;

saludos sres



novato_erick
Responder Con Cita
  #2  
Antiguo 12-04-2014
Avatar de Caminante
Caminante Caminante is offline
Miembro
 
Registrado: oct 2010
Ubicación: Lima - Peru
Posts: 338
Poder: 14
Caminante Va camino a la fama
Cita:
Empezado por novato_erick Ver Mensaje
trato de buscar el campo en el debrid haciendo esto pero no me está eliminando dicho registro lo que hace es eliminarme es el último registro:
novato_erick
Para ubicar el registro en un clientdataset es mejor usar locate:
Código Delphi [-]
 if frmFacturacionprincipal.dbgVentas.DataSource.DataSet.locate('VentaCOD_BARRA',codigoP,[]) then
frmFacturacionprincipal.dbgVentas.DataSource.DataSet.Delete;




Cita:
Empezado por novato_erick Ver Mensaje
la otra interrogante de este hilo es: si al borrar en el DBGRID me borrará el registro tambien del ClientDataSet que me almacena en mEmoria los datos?
novato_erick
No estarias borrando el registro del cbgrid ya que este solo es una vista virtual de los datos contenidos en el dataset. Asi que al borrar un registro lo estas borrando en el dataset.

Saludos
Responder Con Cita
  #3  
Antiguo 13-04-2014
novato_erick novato_erick is offline
Miembro
 
Registrado: ago 2010
Ubicación: Panamá
Posts: 396
Poder: 14
novato_erick Va por buen camino
Caminante
Cita:
Asi que al borrar un registro lo estas borrando en el dataset.
Es cierto lo elimina del DataSet en este Caso es mi ClientDataSet

Gracias por tu apoyo


Saludos
Responder Con Cita
  #4  
Antiguo 13-04-2014
Avatar de Caminante
Caminante Caminante is offline
Miembro
 
Registrado: oct 2010
Ubicación: Lima - Peru
Posts: 338
Poder: 14
Caminante Va camino a la fama
Si el clientdataset esta relacionado con un provider para hacer definitivos los cambios debes usar el metodo applyupdates despues de la eliminacion.

Saludos
Responder Con Cita
  #5  
Antiguo 13-04-2014
novato_erick novato_erick is offline
Miembro
 
Registrado: ago 2010
Ubicación: Panamá
Posts: 396
Poder: 14
novato_erick Va por buen camino
Caminante
Cita:
Si el clientdataset esta relacionado con un provider para hacer definitivos los cambios debes usar el metodo applyupdates despues de la eliminacion.
No es así. no está relacionado a un provider ya que el clientDataSet lo estoy utilizando como una tabla temporal utilizando este recurso http://delphiallimite.blogspot.com/2...moria-con.html asi que al final lo que deseo es enviar esos datos a una tabla en la db haciendo un conteo de la cantidad de registro y utilizando la clausula FOR para ir insertando cada registro. Espero que esa idea sea la correcta para enviar ese conjunto de datos a la db.

en cuanto al problema de eliminar registro del dbgrid por tu ayuda está resuelto gracias nuevamente.

Saludos
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Crear tabla temporal usando ClientDataSet oscarac OOP 10 20-05-2011 10:36:24
ayuda con tabla temporal(clientdataset) ragder Varios 0 16-04-2010 11:31:27
Como Evitar Borrar Registro en dbGrid al Presionar ESCAPE ???? AGAG4 Varios 4 07-07-2006 05:30:20
Borrar lineas detalle al borrar registro maestro akinom38 Conexión con bases de datos 3 11-01-2006 11:38:07
borrar ClientDataSet carlomagno Firebird e Interbase 3 26-07-2004 15:17:05


La franja horaria es GMT +2. Ahora son las 14:28:27.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi