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
[-]
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);
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!!!!!!