Club Delphi  
    Paypal   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 30-07-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 30
jachguate Va por buen camino
Que te indique que ?
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #2  
Antiguo 30-07-2004
karocs karocs is offline
Miembro
 
Registrado: jul 2004
Posts: 143
Poder: 23
karocs Va por buen camino
Enviar a la BD solo los registros que se actualizaron

hola

Alguna propiedad que me indique cuales registros se modificaron en el ClientDataSeT

Saludos...
Responder Con Cita
  #3  
Antiguo 30-07-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 30
jachguate Va por buen camino
La propiedad donde se lleva el registro es Delta

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #4  
Antiguo 02-08-2004
karocs karocs is offline
Miembro
 
Registrado: jul 2004
Posts: 143
Poder: 23
karocs Va por buen camino
Enviar a la BD solo los registros que se actualizaron

Saludos..

Puedo acceder a la propiedad Delta de alguna forma ? o antes de hacer Post o ApplyUpdates coloco la propiedad ?.

Gracias...
Responder Con Cita
  #5  
Antiguo 02-08-2004
Avatar de __marcsc
__marcsc __marcsc is offline
Miembro
 
Registrado: may 2003
Ubicación: Girona
Posts: 577
Poder: 24
__marcsc Va por buen camino
Hola,

no te lo puedo asegurar con exactitud, pero creo recordar que los ClientDataSet tienen dos propiedades de tipo OleVariant, una de ellas Delta y la otra Data.

Data tiene los datos que contiene el DataSet pero es asignable por lo que si tu a un ClientDataSet le asignas Delta a su propiedad Data deberías poder ver solo los registros modificados.

Sorry si hay alguna inexactitud

Saludos.
Responder Con Cita
  #6  
Antiguo 02-08-2004
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 26
guillotmarc Va por buen camino
Hola.

Puedes acceder al Delta en el evento BeforeApplyUpdates (lo obtendrás como parámetro del evento).

Para saber si un registro de un clientdataset ha sido modificado, puedes consultar su propiedad UpdateStatus, que puede ser : No Modificado, Modificado, Insertado, Eliminado.

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #7  
Antiguo 02-08-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 30
jachguate Va por buen camino
Cool

Cita:
Empezado por karocs
o antes de hacer Post o ApplyUpdates coloco la propiedad ?.
Esto es totalmente automático. Podes consultar y manipular la propiedad delta, o incluso hacer que sea visible en un Grid... pero no hace falta que asignes nada a ella.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #8  
Antiguo 02-08-2004
Jordy Jordy is offline
Miembro
 
Registrado: may 2003
Posts: 51
Poder: 24
Jordy Va por buen camino
Enviar al BD solo los registros que se actualizaron

Hola a todos.

Tengo una aplicación a medias por el siguiente motivo:

Tengo una BD Firebird 1.5 y creo una pantalla con DBEdits cada uno enlazado a un campo de la tabla excepto el campo clave que le introduzco la ref. que yo quiero y al apretar Enter me busca el registro y ya lo tengo en cada campo del formulario. Ahora si modifico algún dato y luego apreto un botón que tengo un ApplyUpdates(0) me da un error de que no me conoce el nombre de la tabla a actualizar (he modificado el parámetro del ApplyUpdates a -1 y a un valor +n y me hace lo mismo).
Todo lo demás buscar, modificar a través de sql, y la elimincación me funciona correctamente, pero esto no y me interesa poderlo hacer.

El tipo de acceso lo hago con:
1 TSQLConnection
1 TSQLQuery
1 TDataSetProvider
1 TClientDataSet
1 TDataSource

los dos primeros son de dbExpress. Lo malo es que tambíen lo he probado con componentes Interbase y me hace lo mismo, en cambio con ADOExpress me funciona bíen. Lo malo de ADO es el tiempo de respuesta de la BD que es mucho más lento que en los otros dos anteriores que es inmedito.
No he probado con BDE ya que dicen que ya está obsoleto, no sé.

Alguien me puede ayudar en este caso ?.
y Vosotros con que componentes lo hariais, ya que es una aplicación Cliente/Servidor con mucho movimiento de información en red con varios ordenadores ?.

Gracias. Jordy.
Responder Con Cita
  #9  
Antiguo 03-08-2004
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 26
guillotmarc Va por buen camino
Hola.

Esto me ha ocurrido cuando la consulta de la que se reciben los datos, tiene una subconsulta. El Parser de la sentencia no es muy inteligente, y considera la primera tabla que encuentra, como la tabla a modificar.

En todo caso la solución es sencilla. En el evento OnGetTableName del TDatasetProvider, indícale cual es la tabla a utilizar para modificar los registros.

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
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


La franja horaria es GMT +2. Ahora son las 13:39:34.


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