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 Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-11-2006
Avatar de Ken_Masters
Ken_Masters Ken_Masters is offline
Miembro
 
Registrado: oct 2006
Posts: 45
Poder: 0
Ken_Masters Va por buen camino
Problema con modificaciones

Hola a todos, lo que sucede es que en la base de datos que estoy haciendo necesito implementar modificaciones, la idea inicial que tengo y que hasta cierto punto me está funcionando, es que tengo un boton "MODIFICAR" el cual modifica las celdas cuya llave primaria esté seleccionada en el dbgrid, (obviamente se tiene que poner la informacion en los edits). El problema es que no se como hacerle para que solo se modifique una, dos, tres o n celdas de un registro específico, lo que se me ocurre es poner un botón modificar para cada atributo, y así el usuario puede modificar el que guste, pero com oque no se me hace una interfaz no muy amigable, alguna sugerencia???? Gracias XD
Responder Con Cita
  #2  
Antiguo 07-11-2006
Avatar de mlara
[mlara] mlara is offline
Miembro Premium
 
Registrado: jun 2003
Ubicación: Colombia
Posts: 667
Poder: 22
mlara Va por buen camino
Hasta donde entiendo tienes un DBGrid, cierto? Pues si el usuario realiza sus modificaciones sobre el mismo DBGrid, no tienes por qué preocuparte de nada. Obviamente el DBGrid tiene su DataSource y este su DataSet. Si el DataSet es un TTable basta con que su propiedad ReadOnly esté en True, y si es un TQuery la propiedad es RequestLive, pero ahí sí depende de la consulta, pues una consulta compleja quizás no se deje actualizar.

De todas maneras yo creo que si la tabla a modificar tiene muchos registros, campos tipo cadena muy largos, campos memo, imágenes, etc. es mejor hacerlo a través de un Form diseñado para ello.

Pero bueno, si estoy suponiendo cosas... sería bueno saber en qué base de datos trabajas, entre otras cosas...
__________________
...y mañana caminaré por las calles pasando inadvertido, como siempre.
Responder Con Cita
  #3  
Antiguo 07-11-2006
Avatar de Ken_Masters
Ken_Masters Ken_Masters is offline
Miembro
 
Registrado: oct 2006
Posts: 45
Poder: 0
Ken_Masters Va por buen camino
Bueno, ya cheké lo que me dijiste, y de que se puede, se puede modificar directamente desde el dbgrid, pero luego me saca un error que dice "No se puede encontrar la fila para su actualizacion,algunos valores han cambiado desde la ultia vez que se leyo", casualmente me causa problemas solo cuando cambio la clave foranea (a una que si existe en la talbla padre desde luego) y despuse de cambiarla me muevo a otro registro. Eso de cambiarlo directamente desde el dbgird está genial XD, pero ese es el problema que me causa. Por cierto uso mysql, lo enlazo a dellphi con ODBC y la paleta de componentes que uso es la ADO.
Responder Con Cita
  #4  
Antiguo 07-11-2006
Avatar de mlara
[mlara] mlara is offline
Miembro Premium
 
Registrado: jun 2003
Ubicación: Colombia
Posts: 667
Poder: 22
mlara Va por buen camino
Cita:
Empezado por Ken_Masters
..."No se puede encontrar la fila para su actualizacion,algunos valores han cambiado desde la ultia vez que se leyo", ...
Quizás tu tabla no tiene un índice primario. Me atrevo a decir estos pq si usas mySQL 3.23 o anterior a la cuatro, esta no soporta la integridad referencial, y por lo tanto no te obliga a crear los índices respectivos. Entonces recuerda que debes siempre tener un índice o clave primaria para que el componente pueda realizar actualizaciones automáticas. Si lo tienes, es probable qu en el DBGrid no se esté mostrando. Sin embargo, te recomiendo, si quieres seguir permitiendo que el usuario realice modificaciones directamente en el BDGrid, que uses los eventos del ADOTable para realizar la actualización manual a través de un ADOQuery.
__________________
...y mañana caminaré por las calles pasando inadvertido, como siempre.
Responder Con Cita
  #5  
Antiguo 08-11-2006
Avatar de Ken_Masters
Ken_Masters Ken_Masters is offline
Miembro
 
Registrado: oct 2006
Posts: 45
Poder: 0
Ken_Masters Va por buen camino
pues la vdd es que uso el mysql 5 y las tablas si tienen llave primaria jeje XD
Responder Con Cita
  #6  
Antiguo 08-11-2006
Avatar de mlara
[mlara] mlara is offline
Miembro Premium
 
Registrado: jun 2003
Ubicación: Colombia
Posts: 667
Poder: 22
mlara Va por buen camino
mmm bueno, lo que sucede es que alguna vez tuve un caso parecido y como fue hace mucho tiempo no recuerdo muy bien, pero estoy casi seguro de que era pq el componente no era capaz de determinar cuál era la fila modificada. La verdad no podría reproducirlo ahora pq me falta un poco de tiempo. Espero encuentres el problema.
__________________
...y mañana caminaré por las calles pasando inadvertido, como siempre.
Responder Con Cita
Respuesta



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
Grabar modificaciones osvaldo1308 Varios 2 13-06-2006 10:27:12
Modificaciones DBGrid Delphi 7 damix Varios 4 15-11-2005 19:43:32
Detectar modificaciones en el provider Thales Providers 4 07-11-2005 19:42:52
Que no almacene las modificaciones perillan Conexión con bases de datos 3 17-07-2005 20:19:05
Capturar modificaciones a un archivo soul6301 Varios 1 07-10-2004 10:29:28


La franja horaria es GMT +2. Ahora son las 14:11:15.


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