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 02-02-2007
Byfed Byfed is offline
Miembro
 
Registrado: oct 2006
Posts: 18
Poder: 0
Byfed Va por buen camino
couldn't perform the edit (mysql + d6)

Hola a todos,

Es mi primer mensaje en el foro, así que antes que nada, un saludo a todos y agradecer vuestras aportaciones, que tantas veces me han sacado de los entuertos en los que me meto.

Estoy haciendo una aplicación en Delphi 6 que conecta vía ODBC con una base de datos mysql. Utilizo un DBGrid, un DBNavigator para mostrar los listados y después controles DBEdit para mostrar los campos del registro activo. Cuando le doy a añadir en el DBNavigator he conseguido que funcione sin problemas, pero si edito un registro, me dice que otro usuario ha cambiado el registro y no puede hacer el edit.

He probado a capturar el clic sobre el DBNavigator y comprobar si el boton es el de edit. En ese caso, cerrar la tabla, volverla a abrir y hacer un locate para volver al registro que estaba y entonces poner la tabla en modo edición, pero sigue dando lo mismo.

En la zona en que muestro los campos de cada registro, hay unos campos que podrían estar causando el problema. Veréis: Tengo unos DBlookupComboBox que muestran opciones de otra tabla. El keyField es la clave primaria de esa otra tabla. El caso es que el cliente quiere poder teclear el código, cuando se lo sepa y cuando no, seleccionarlo del combo.
Se me ocurrió hacer lo siguiente:
- Poner un campo edit normal. Cuando salgo del campo Edit lo que hago es, compruebo si la tabla está en modo edición o inserción y en ese caso escribo directamente en el registro el código tecleado.
- Al hacerlo, como el combo está enlazado a la tabla, muestra la opción deseada como si lo hubiera desplegado.
- Además, si el usuario ignora el campo edit y escoge directamente del combo, al salir de ese control actualizo el edit (más que nada para que el usuario vea el código, como si lo hubiera escrito).

Pues bien, al implementar mi "apaño", me ha empezado a suceder lo que os describía en el título. Si doy a editar en el DBNavigator y cambio algún campo, cuando hago el post me sale el mensaje de que otro usuario ha cambiado el registro... y no hay manera.

¿Alguien tiene idea de cómo puedo solucionar el problema? ¿Hay alguna forma de desactivar ese control que hace sobre modificaciones de otros usuarios? (el programa se va a ejecutar desde un solo puesto y me da igual que no haga un control riguroso).

Estaba planteándome reconstruir toda la aplicación utilizando querys y haciendolo todo por código, porque es lo que al final tuvo que hacer un compañero que le sucedió lo mismo... pero ufff... es muy laborioso. Preferiría encontar una solución y aprovechar lo que ya tengo hecho.

Gracias de antemano y un saludo.
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
No me funciona RichEdit1.Perform(EM_SCROLLCARET, 0, 0); danielcordovahe Varios 3 28-04-2006 09:23:36
DBLookupComboBox1.Perform Johnny Q OOP 5 15-07-2005 22:14:08
error couldn't perform the edit because another user changed the record marcelofabiani Conexión con bases de datos 3 25-01-2005 01:55:11
error couldn´t perform the edit marcelofabiani Conexión con bases de datos 1 03-01-2005 01:26:28
error: "Couldn´t perform the edit...." Jech Conexión con bases de datos 2 11-09-2004 23:09:40


La franja horaria es GMT +2. Ahora son las 10:42:51.


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