Ver Mensaje Individual
  #10  
Antiguo 22-08-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por edgar_prospero Ver Mensaje
pues no soy un experto pero si entiendo lo que quieres decir pero yo lo que quise lograr es mediante edit agregar los datos al dbgrid y hasta al ultimo por medio de un boton guardarlo, use un componente llamado clientdataset1, pero es lo que no queria que se fuera agrgando automaticamente si no hasta que yo lo decidiera, la ayuda que pedia aqui es por otro lado, ya que tengo varios productos que corresponden a un folio por decir el folio 2 puede tener 3 registros y al trarmelos de la base de datos al dbgrid pues veo los 3 ahi mismo agrego un cuarto y quiero que se me agregue nomas ese cuarto a la base de datos es la ayuda que estoy solicitando, pero de todas formas seguire tu consejo y lo voy a leer gracias y saludos
Tengo la impresión de que estás usando un ClientDataSet de forma equivocada.

Vamos a ver, según entiendo, tienes una tabla de productos y una de sus columnas es un folio. Tú quieres mostrar en un DBGrid los productos correspondientes a un determinado folio y poder agregar nuevos productos, uno o más, pero que esos productos no se guarden sino hasta que tú explícitamente lo digas.

Esto lo puedes lograr ciertamente con un ClientDataSet, pero éste debe estar conectado al dataset con los productos que te interesan. Esquemáticamente hablando tienes esta hilera de conexiones:

Código:
DBGrid <---> DataSource <---> ClientDataSet <---> DatasetProvider <---> Query
El Query tendría una sentencia de este tipo:

Código SQL [-]
select * from productos where folio := 84 # un folio determinado

Cuando uses el método Open (o pongas la propiedad Active en true) del ClientDataSet, éste recogerá los datos del query y se mostrarán en el DBGrid. Aquí, puedes agregar, modificar o eliminar registros directamente en el grid, pero ninguno de estos cambios se reflejará en tu tabla de productos de la base de datos.

Cuando estés listo para grabar los datos, usarás el método ApplyUpdates(0) del ClientDataSet. Esto "moverá" todos los cambios que hayas hecho en el DBGrid (registros nuevos, borrados y modificados) a la base de datos final.

¿Te aclara esto algo?

// Saludos
Responder Con Cita