Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-08-2012
edgar_prospero edgar_prospero is offline
Miembro
NULL
 
Registrado: mar 2012
Posts: 202
Poder: 13
edgar_prospero Va por buen camino
limpiar dbgrid

que hay amigos aqui con un problema aver si pueden echarme la mano, tengo un dbgrid al cual le voy agregando registros y al ultimo mediante un boton los guardo en mi base dedatos hasta ahi todo bien, mi problema empieza cuando cierro el programa y lo vuelvo a abrir ya que la informacion de la base de datos me aparece en el dbgrid, quisiera que me apareciera sin informacion para meter nuevos registros mi base de datos esta en mysql
Responder Con Cita
  #2  
Antiguo 16-08-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
El dataset asociado al datasource que tiene el dbgrid tendrá un 'select' que se trae datos, o es una tabla y está abierta.
Responder Con Cita
  #3  
Antiguo 16-08-2012
edgar_prospero edgar_prospero is offline
Miembro
NULL
 
Registrado: mar 2012
Posts: 202
Poder: 13
edgar_prospero Va por buen camino
el dbgrid esta ligado a un datasource y el datasource esta ligado a un mytable, asi que me imagino que siempre esta abierto
Responder Con Cita
  #4  
Antiguo 16-08-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Edgard.

Como te menciona Casimiro, un TDBGrid está relacionado por su propiedad DataSource con un conjunto de datos que reside en una tabla o consulta mediante un TDataSource. Si abres tu DataSet y la relación que te mencioné arriba está establecida, indefectiblemente mostrará los datos que existan en el DataSet.

Una de las soluciónes sería asociar al TDBGrid un TClientDataSet en memoria y al finalizar el ingreso volcar los datos al TDataSet. Un ejemplo de su uso en memoria Búsqueda de archivos ordenada por fecha. (Encontrarás más en la búsqueda de los foros)

Otra podría ser asociar al TDBGrid un TDataSet temporal para ingresar los datos, vaciándolo después de haber volcado el contenido al DataSet definitivo.

De ambos modos siempre verás el DBGrid vacío al iniciar las inserciones. Pero esto tiene sus complicaciones... Por ejemplo a la hora de verificar si un dato que se está ingresando ya existe en el DataSet.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #5  
Antiguo 16-08-2012
edgar_prospero edgar_prospero is offline
Miembro
NULL
 
Registrado: mar 2012
Posts: 202
Poder: 13
edgar_prospero Va por buen camino
ya le intente de la manera que me dicen y meto el primer registro al dbgrid pero cuanto intento meter el segundo me marca un error que idce "cliente dataset1: cannot perform this operation on an open dataset" este es el codigo del problema:

Código Delphi [-]
form4.ClientDataSet1.CreateDataSet;
form4.ClientDataSet1.Open;

  

 form4.ClientDataSet1.Append;
    
   form4.ClientDataSet1.FieldByname('fecha').AsDateTime := form4.fecha.Date;
     form4.ClientDataSet1.FieldByname('codigo').AsString := codigo.Text;
    form4.ClientDataSet1.FieldByName('nombre').AsString  := nombre.Text;
   form4.ClientDataSet1.FieldByName('unidad').AsString  := unidad.Text;
   form4.ClientDataSet1.FieldByName('cantidad').AsString := cantidad.Text;
   form4.ClientDataSet1.FieldByName('precio').AsString  := precio.Text;
   form4.ClientDataSet1.FieldByName('importe').AsString  := floatToStr( StrTofloat(cantidad.Text) * StrTofloat(precio.Text) );
   form4.ClientDataSet1.Post;
Responder Con Cita
  #6  
Antiguo 16-08-2012
edgar_prospero edgar_prospero is offline
Miembro
NULL
 
Registrado: mar 2012
Posts: 202
Poder: 13
edgar_prospero Va por buen camino
ya logre solucionarlo era un error mio tenia que poner en el evento on create
Código Delphi [-]
form4.ClientDataSet1.CreateDataSet;
form4.ClientDataSet1.Open;

pero ahora me surgio otro problema jeje ya me pasa los registros que necesite al db grid pero al guardarlos si tengo 3 registros nomas me guarda el ultimo registro en mi base de datos en mysql este es el codigo con el que intento guardarlo ojala me puedan ayudar

Código Delphi [-]
begin
  DBGrid1.DataSource.DataSet.First; 
  While not (DBGrid1.DataSource.DataSet.Eof) Do
  begin
    query.Close;
    query.SQL.Clear;
    query.SQL.Add('INSERT INTO entradas (codigo, nombre, unidad, cantidad, precio, importe)');
    query.SQL.Add('VALUES ( : pcodigo,: pnombre, : punidad, 
      :pcantidad, :pprecio, :pimporte )');
    //query.SQL.Add('on duplicate key update (serie=:pserie, fecha=:pfecha)');

    query.ParamByName('pcodigo').Value:=DBGrid1.DataSource.DataSet.FieldByName('codigo').value;
    query.ParamByName('pnombre').Value:=DBGrid1.DataSource.DataSet.FieldByName('nombre').value;
    query.ParamByName('punidad').Value:=DBGrid1.DataSource.DataSet.FieldByName('unidad').value;
    query.ParamByName('pcantidad').Value:=DBGrid1.DataSource.DataSet.FieldByName('cantidad').value;
    query.ParamByName('pprecio').Value:=DBGrid1.DataSource.DataSet.FieldByName('precio').value;
    query.ParamByName('pimporte').Value:=DBGrid1.DataSource.DataSet.FieldByName('importe').value;
    DBGrid1.DataSource.DataSet.Next;
    query.ExecSQL;

Última edición por ecfisa fecha: 16-08-2012 a las 04:53:22. Razón: Etiquetas [DELPHI] [/DELPHI] - Quitár íconos del código
Responder Con Cita
  #7  
Antiguo 16-08-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Probá en este órden:
Código Delphi [-]
  DBGrid1.DataSource.DataSet.First; 
  While not (DBGrid1.DataSource.DataSet.Eof) Do
  begin
    ...
    query.ExecSQL;
    DBGrid1.DataSource.DataSet.Next;
  end;

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #8  
Antiguo 16-08-2012
edgar_prospero edgar_prospero is offline
Miembro
NULL
 
Registrado: mar 2012
Posts: 202
Poder: 13
edgar_prospero Va por buen camino
gracias eficsa ahi estaba el asunto jeje con tu sugerencia ahora si ya estuvo todo bien de nuevo gracias
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
Limpiar dbgrid gianfranco_tont OOP 6 26-02-2012 02:24:19
Limpiar un dbgrid Sacmaed SQL 4 31-05-2010 02:45:23
Limpiar dbgrid hook Varios 2 22-04-2010 00:30:43
Limpiar los Edit Elite237 OOP 3 29-07-2007 05:01:15
limpiar un DBLookupComboBox lola OOP 4 07-10-2005 22:40:14


La franja horaria es GMT +2. Ahora son las 01:45:04.


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