Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-04-2008
metroyd metroyd is offline
Miembro
 
Registrado: oct 2007
Posts: 78
Poder: 17
metroyd Va por buen camino
error al modificar una Tabla

Hola, les pido su ayuda para identificar y corregir el problema que se genera en mi aplicacion al intentar modificar un registro de una tabla en MySQL. La tabla se llama HORARIOS. En mi aplicacion tengo los tipicos botones Guardar, Borrar, Modificar. El caso es que al dar clic en Modificar aparece el siguiente error: 'No se puede encontrar la fila para su actualizacion: algunos valores han cambiado desde la ultima vez que se leyó'.

Pero lo raro aqui, es que este error apararece solamente cuando al iniciar mi aplicacion, me voy al dbgrid, doy doble clic en una clave, se llenan los campos respectivos, hago modificaciones y doy clic en Modificar!!!! Es decir, que solo ocurre cuando lo primero que hago en mi aplicacion es modificar un registro. Porque cuando primero guardo uno nuevo o borro uno existente, ahi ya puedo hacer las modificaciones.

El codigo que tengo en el boton Modificar es este:
Código Delphi [-]
// Modificar pelicula
   modulo.alta.Close;
   modulo.alta.SQL.Clear;
   modulo.alta.SQL.add('select * from horarios where cve_pelicula ='+chr(39)+edit1.text+chr(39));
   modulo.alta.Open;
   modulo.alta.edit;
   modulo.alta.FieldByName('cve_pelicula').Value:=Edit1.Text;
   modulo.alta.FieldByName('titulo').Value:=Edit2.Text;
   modulo.alta.FieldByName('distribuidor').Value:=Edit3.Text;
   modulo.alta.FieldByName('sala').Value:=combosala.Text;
   modulo.alta.FieldByName('duracion').Value:=timeduracion.Time;
   modulo.alta.FieldByName('clasificacion').Value:=combobox2.Text;
   modulo.alta.FieldByName('pfuncion').Value:=funcion1.time;
   modulo.alta.FieldByName('sfuncion').Value:=funcion2.time;
   modulo.alta.FieldByName('tfuncion').Value:=funcion3.time;
   modulo.alta.FieldByName('cfuncion').Value:=funcion4.time;
   modulo.alta.FieldByName('qfuncion').Value:=funcion5.time;
   modulo.alta.FieldByName('sextafuncion').Value:=funcion6.time;
   modulo.alta.Post;
   Application.MessageBox('PELICULA MODIFICADA CORRECTAMENTE','CINE',MB_ICONINFORMATION);

// Actualizacion del grid
   modulo.q1.SQL.Clear;
   modulo.q1.SQL.Add('select * from horarios');
   modulo.q1.Open;
   modulo.data1.DataSet:=modulo.q1;
   form1.dbgrid1.DataSource:=modulo.data1;

Acabo de probar con esto: En mi formulario de captura ocupo edits y DateTimepicker para almacenar la duracion de la pelicula y los horarios de las funciones. Debajo del formulario de captura hay un DBGrid que muestra los registros de la base de datos. Entonces, si yo doy doble clic en la celda de cualquier registro en el campo llave, el formulario de captura se llena con la informacion del DBGrid, y si en ese momento doy clic en Modificar, APARECE EL ERROR; pero si antes de dar clic en modificar me ubico en un DateTimePicker y muevo su valor, cuando doy clic en Modificar, el registro se modifica correctamente. Esto quiere decir que el problema radica en los TimePicker. Por si les ayuda, los tipos de datos de los campos que uso para los horarios, en MySql son de tipo TIME

Espero su ayuda, gracias!!!!!!

Última edición por metroyd fecha: 01-04-2008 a las 23:19:47.
Responder Con Cita
  #2  
Antiguo 02-04-2008
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 24
BlueSteel Va por buen camino
Hola

en realidad no he trabajado con MySQL.. pero no se supone que esto

Código SQL [-]
select * from horarios where cve_pelicula ='+chr(39)+edit1.text+chr(39)

debiera ser
Código SQL [-]
Update Tabla Set Campos... etc..etc...

Salu2
__________________
BlueSteel
Responder Con Cita
  #3  
Antiguo 03-04-2008
jacanche jacanche is offline
Miembro
 
Registrado: may 2003
Ubicación: Campeche,Campeche,Mexico
Posts: 137
Poder: 22
jacanche Va por buen camino
Hola, que tal, como dice bluesteel, quizas seria mas adecuado usar una sentencia update, en lugar del select. Pero eso no significa que no deba funcionar como lo tienes. Yo te sugeriria que checaras si realmente tienes definida una llave primaria en la tabla, a veces cuando no se tiene llave primaria se generan ese tipo de mensaje de error. Igual te preguntaria que componentes usas para acceso a datos.
__________________
Saludos

Alfredo
Responder Con Cita
  #4  
Antiguo 03-04-2008
metroyd metroyd is offline
Miembro
 
Registrado: oct 2007
Posts: 78
Poder: 17
metroyd Va por buen camino
Cita:
Empezado por jacanche Ver Mensaje
Hola, que tal, como dice bluesteel, quizas seria mas adecuado usar una sentencia update, en lugar del select. Pero eso no significa que no deba funcionar como lo tienes. Yo te sugeriria que checaras si realmente tienes definida una llave primaria en la tabla, a veces cuando no se tiene llave primaria se generan ese tipo de mensaje de error. Igual te preguntaria que componentes usas para acceso a datos.
Si tengo llave primaria, y los componentes que uso son: ADO Connection, ADOQuery y DATASource
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
Modificar una tabla dbf hecha en fox pro DenisDiaz Varios 7 13-09-2007 14:25:36
Modificar un dato de una tabla Sg2000 Tablas planas 1 28-04-2005 06:57:55
Modificar Tabla DBF por Sentencia SQL AGAG4 Firebird e Interbase 4 16-09-2004 07:22:19
Tabla a excel modificar y guardar en la tabla jgutti Servers 1 06-09-2004 16:20:49
Error al modificar campo de una Tabla weke Conexión con bases de datos 2 14-05-2004 07:59:06


La franja horaria es GMT +2. Ahora son las 00:16:26.


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