Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-04-2008
Avatar de ElDioni
[ElDioni] ElDioni is offline
Miembro Premium
 
Registrado: jul 2005
Ubicación: Murcia (España)
Posts: 935
Poder: 19
ElDioni Va por buen camino
Insertar registro en un ClientDataSet

He Buscado información pero aún no he podido resolver mi problema, no se si será una tontería pero me llave de cabeza, espero me puedan ayudar. Gracias por adelantado.
Uso delphi 2005 con bbdd access.
Tengo una tabla de direcciones a la cual accedo con adoquery al que le conecto un datasetprovider y a éste un clientdataset que tiene enganchado un datasource que esta ligado a un dbgrid, bien, cuando modifico e inserto un registro lo hago en un formulario aparte y luego vuelvo al del dbgrid, el caso es que borro un registro y funciona, modifico un registro y funciona, pero cuando inserto una direccion nueva me muestra esa direccion y la de todos los clientes restantes, quiero decir, toda la información de la tabla direcciones en lugar del único registro que acabo de introducir.
Si alguien me puede explicar un poco como se insertan registros en un clientdataset se lo agradecería. Estoy algo atascado. Gracias.
Responder Con Cita
  #2  
Antiguo 14-04-2008
Avatar de kuan-yiu
[kuan-yiu] kuan-yiu is offline
Miembro Premium
 
Registrado: jun 2006
Ubicación: Galicia. España.
Posts: 1.017
Poder: 19
kuan-yiu Va camino a la fama
Pero también te muestra la nueva, ¿no? Si es así no parece un problema de inserción, sino de refresco.
Responder Con Cita
  #3  
Antiguo 14-04-2008
Avatar de ElDioni
[ElDioni] ElDioni is offline
Miembro Premium
 
Registrado: jul 2005
Ubicación: Murcia (España)
Posts: 935
Poder: 19
ElDioni Va por buen camino
Gracias por tu rapidez en contestar.
La nueva efectivamente me la muestra más todos los registros o si he visto antes otro cliente, me muestra la nueva direccion que he metido y la del último cliente que he visto, o sea me muestra la nueva dirección más lo que contenía la última consulta del adoquery.
He intentado, antes de introducir la fecha, hacer una consulta en el query del que cuelga el clientdataset para filtrar solo el código de cliente que se está dando de alta en ese momento. pero al insertarlo en el clientdataset entonces no aparece ninguno.
Seguiré probando a ver si al final se comporta como quiero. Si mientras tanto alguien me puede echar una mano.
Responder Con Cita
  #4  
Antiguo 14-04-2008
Avatar de ElDioni
[ElDioni] ElDioni is offline
Miembro Premium
 
Registrado: jul 2005
Ubicación: Murcia (España)
Posts: 935
Poder: 19
ElDioni Va por buen camino
Vale, he conseguido poder dar de alta una dirección y que solo se me muestre ésta haciendo un filtro por el código de cliente, pero claro, tengo que tener de antemano este código, pero cuando el código lo genero al darle al botón de guardar despues de introducir todos los datos, que debería hacer para que solo me saliese la dirección para ese cliente nuevo que aún no tiene código. y si consigo introducir las direcciones como se haría más tarde al applyupdate del clientdataset.
De nuevo gracias por su tiempo
Responder Con Cita
  #5  
Antiguo 14-04-2008
Avatar de kuan-yiu
[kuan-yiu] kuan-yiu is offline
Miembro Premium
 
Registrado: jun 2006
Ubicación: Galicia. España.
Posts: 1.017
Poder: 19
kuan-yiu Va camino a la fama
Creo que no te estoy entendiento.
¿Que muestras normalmente? ¿Todos los clientes? ¿El último? ¿Cambias lo que muestra según en el grid según el modo de trabajo (búsqueda, borrado, inserción)?...
Responder Con Cita
  #6  
Antiguo 15-04-2008
Avatar de ElDioni
[ElDioni] ElDioni is offline
Miembro Premium
 
Registrado: jul 2005
Ubicación: Murcia (España)
Posts: 935
Poder: 19
ElDioni Va por buen camino
Hola Kuan, normalmente se muestra un listado de todos los clientes y desde ese listado puedes dar de alta, modificar, ver, etc..., cuando modifico o veo la información de un cliente, con el query, hago un filtro de este cliente en la tabla de direcciones por lo que si despues doy de alta un cliente nuevo, al añadir una direccion, me muestra la dirección nueva y la del cliente que había filtrado anteriormente, y si doy de alta un nuevo cliente nada más abrir el programa, como no tenía ningún filtro hecho en la tabla de direcciones, me saca la que doy de alta nueva y todas las direcciones que hay ya introducidas.
Responder Con Cita
  #7  
Antiguo 15-04-2008
Avatar de kuan-yiu
[kuan-yiu] kuan-yiu is offline
Miembro Premium
 
Registrado: jun 2006
Ubicación: Galicia. España.
Posts: 1.017
Poder: 19
kuan-yiu Va camino a la fama
Vale, creo que ya sé lo que pasa, y me parece que todo el problema está en la forma de presentar los datos, no en los procesos de alta/baja.

Tu filtro va por el identificador de la tabla de clientes y todo el problema está ahí: que no puedes mostrar el cliente hasta después de finalizar completamente la inserción, o simplemente que es un dato que no tienes en el formulario.
Asegúrate que refrescas el grid despues de finalizar la inserción y posiciónate en la última tupla (siempre puedes buscar el identificador más alto en caso de que uses un campo incremental).
Si es un dato que se genera en la inserción propiamente dicha y no se tiene en el formulario debes aplicar el método que uses para las búsquedas justo a continuación de la inserción.
Responder Con Cita
  #8  
Antiguo 22-04-2008
Avatar de ElDioni
[ElDioni] ElDioni is offline
Miembro Premium
 
Registrado: jul 2005
Ubicación: Murcia (España)
Posts: 935
Poder: 19
ElDioni Va por buen camino
Muchas gracias kuan-yiu por tu tiempo, siento haber tardado tanto en contestar, pero es que he estado probando el código, al final lo estaba haciendo mal porque mantenía el ultimo filtro que había hecho y al dar de alta un cliente nuevo me sumaba todos los registros del ultimo filtro hecho más los que habia añadido. Lo he podido resolver, de todas formas muchas gracias.
Responder Con Cita
  #9  
Antiguo 22-04-2008
Avatar de kuan-yiu
[kuan-yiu] kuan-yiu is offline
Miembro Premium
 
Registrado: jun 2006
Ubicación: Galicia. España.
Posts: 1.017
Poder: 19
kuan-yiu Va camino a la fama
Me alegro de que lo hayas solucionado
Poca cosa he hecho, de todos modos de nada.
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
Duplica registro en ClientDataSet maestro-detalle Josepo Conexión con bases de datos 8 07-05-2013 11:59:09
Insertar en un ClientDataSet una imagen Bitmap David Conexión con bases de datos 1 14-09-2007 14:56:33
Buscar registro por fecha utilizando filtro de ClientDataSet radiohead Conexión con bases de datos 8 31-08-2007 11:10:40
Borrar,Insertar y Modificar con ClientDataSet en Interbase/Firebird David Conexión con bases de datos 1 16-06-2007 23:59:38
Primer registro de un ClientDataSet?? Berto2003 Varios 4 13-03-2007 18:24:49


La franja horaria es GMT +2. Ahora son las 19:15:50.


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