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 26-12-2007
drakkon drakkon is offline
Miembro
 
Registrado: jun 2007
Posts: 21
Poder: 0
drakkon Va por buen camino
Cool DbGrid en Delphi 7

Que tal compañeros, tengo una consulta que hacer con ustedes los expertos. El problemas es el siguiente, estoy creando una aplicacion en delphi 7 y la he conectado a mi BD creada en MYSQL. He colocado en un form un dbgrid y ahi mismo un TQuery (BDE) y un TDataSource, el TQuery y dbgrid estan conectados al mismo Datasource. Realizo una consulta que es la siguiente:

Código SQL [-]
Query4.Close;
Query4.SQL.Clear;
Query4.SQL.Add('SELECT id_producto,cantidad,UM,id_tienda FROM previa_venta WHERE id_tienda="'+Edit1.Text+'";');
Query4.Open;

En el edit1 tengo una clave de la tienda.

Los datos se muestran correctamente en el DbGrid, el problema es al momento de querer modificarlos directamente en el mismo dbgrid. Ya he intentado poner la propiedad RequestLive del TQuery en true al igual que la propiedad AutoRefresh. Pero aún asi no me permite escribir nada en el Dbgrid y me arroja este error: "Couldn't perform the edit because anothe user changed the record". Y no se como solucionarlo. Podría alguien ayudarme, por favor. Esto de escribir en el dbgrid ya lo había podido hacer antes utilizando delphi 6 y sin ningun problema, pero no se cual es la diferencia o no se por que en delphi 7 me este costando trabajo.
Responder Con Cita
  #2  
Antiguo 26-12-2007
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
Quitale el autorefresh. Cuando editas en un dbgrid la tabla entra en modo dsBrowse mientras estas moviéndote por las filas, en cuanto das un enter para editar una celda, entra a modo dsEdit. Cuando pasas a otra fila se hace un Post de manera automática a la tabla.

Prueba quitando el autorefresh.
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #3  
Antiguo 27-12-2007
drakkon drakkon is offline
Miembro
 
Registrado: jun 2007
Posts: 21
Poder: 0
drakkon Va por buen camino
Ya he intentado poniendo la propiedad autorefresh en false, pero no funciona. Sigo tratando de hacer modificaciones en el dbgrid pero no puedo hacerlo, me envía el mismo error. Puedes ayudarme por favor ??
Responder Con Cita
  #4  
Antiguo 27-12-2007
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
¿la tabla tiene una llave primaria?

¿está dicha llave primaria identificada en el TQuery?. debiera ocurrir automáticamente, pero quizás el driver de Mysql no provee esa funcionalidad.

El mensaje de error significa que el BDE no ha podido encontrar el registro para actualizar... por tanto asume que fue modificado (o borrado) por otro usuario, en un entorno multiusuario.

Te recomiendo la lectura del libro "La Cara oculta de Delphi 4", de Ian Marteens, enfocado al desarrollo con BDE, que podes obtener en el ftp del club Delphi-Win32/Libros.

De lo aprendido en dicho libro (según creo), el BDE se basa en el valor establecido en la propiedad UpdateMode para construir la sentencia Update.

Probablemente dicho valor está establecido a upWhereAll, pero o bien hay algún campo cuyo valor es construido al vuelo o bien el valor realmente ha cambiado. Podes conseguir corregir el comportamiento dejando dicho valor en upWhereKeyOnly, para que solo en los campos que conforman la llave primaria formen parte del where, aunque esto signifique el riesgo de machacar las modificaciones realizadas por otro usuario.

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
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
Delphi for php- dbgrid omarifr PHP 2 12-10-2007 18:02:54
DBGrid en delphi 5 ibbeth SQL 1 03-01-2006 03:38:05
Modificaciones DBGrid Delphi 7 damix Varios 4 15-11-2005 20:43:32
Posicionar fila en un DBGRID-delphi Vivi Conexión con bases de datos 4 29-07-2005 21:49:23
Delphi + MySQL (DBGrid) gringo Conexión con bases de datos 5 23-10-2004 05:44:31


La franja horaria es GMT +2. Ahora son las 11:18:21.


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