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 Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #21  
Antiguo 04-03-2017
koalasoft koalasoft is offline
Miembro
 
Registrado: oct 2004
Ubicación: Tenosique Tabasco
Posts: 86
Poder: 20
koalasoft Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola.

Ví que en otro hilo consultaste sobre la funcionalidad del método Requery, espero que esta traducción de la ayuda de Delphi conteste tu duda:


Saludos
Muchas gracias estimado ..

Mi pregunta relacionado a esto fue que he intentado que mi procedimiento para actualizar un registro lo hace bien, puesto que al intentar actualizar me sale el siguiente mensaje:

---------------------------
Debugger Exception Notification
---------------------------
Project CTRO.exe raised exception class EOleException with message 'No se puede encontrar la fila para su actualización: algunos valores han cambiado desde la última vez que se leyó'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------

Te comento rapido, antes mi base de datos mysql (mariadb) estaba en un servidor Windows, por necesidades exporte la base de datos ahora a un servidor Linux, al querer usar el sistema nuevamente me aparece este mensaje al querer actualizar un registro, cosa que antes en el anterior servidor no lo hacia.

Mi codigo de actualización es el siguiente:

Código:
with ADOQuery1 do
  begin
    Close;
    SQL.Clear;
    SQL.Add('SELECT * FROM ONTs ');
    SQL.Add('WHERE MAC_ONT LIKE ' +quotedstr('%' + Edit1.Text + '%')+' ');
    Open;
  if isEmpty Then
    begin
	AdoQuery1.Close;            // cierro la tabla.
	AdoQuery1.Open;             // abro la Tabla
	msError('No se encuentra registrado, Favor verifica los datos.','ERROR: ID MAC');
        ADOQuery1.Active := False;
	Edit1.SetFocus;
    exit;
  End
  Else   // En caso de Si haber un resultado
   Begin
    If MessageDlg('¿Está seguro que desea ACTUALIZAR el registro? ',mtConfirmation,[mbYes,mbNo],0) = mrYes then
      begin
      Alta_ONT.Cursor:= crSQLWait;
	    DMod1.ADOConnection1.BeginTrans;   // Inicio la Transacción
       try
       ADOQuery1.Edit;           // Editar la Tabla
       ADOQuery1.FieldByName('MOD_ONT').AsString := ComboBox1.Text;
       ADOQuery1.FieldByName('SERIE_ONT').AsString := Edit2.Text;
       ADOQuery1.FieldByName('PON_ONT').AsString := Edit3.Text;
       ADOQuery1.FieldByName('ONT_S').AsString := Edit4.Text;
       ADOQuery1.FieldByName('SSID_ONT').AsString := Edit5.Text;
       ADOQuery1.FieldByName('KEYWIFI_ONT').AsString := Edit6.Text;
       ADOQuery1.FieldByName('IP_ONT').AsString := Edit7.Text;
       ADOQuery1.FieldByName('ESTATUS_ONT').AsString := ComboBox2.Text;
       ADOQuery1.Post;            // Guardo Datos;

       if DMod1.ADOConnection1.InTransaction then
       Begin
        DMod1.AdoConnection1.CommitTrans; // actualizo la BD
        AdoQuery1.Close;            // cierro la tabla.
	AdoQuery1.Open;             // abro la Tabla
        Alta_ONT.Cursor:= crDefault;
	      MSG:='EL Registro ONU [MAC: '+ Edit1.Text + ' - MODELO: ' + ComboBox1.Text + ' - SERIE: '+ Edit2.Text +' - ONT/s: ' + Edit4.Text + ' ] - SE MODIFICO/ACTUALIZO Satisfactoriamente';
	      Application.MessageBox(PChar(MSG), 'Atención',MB_ICONINFORMATION );
	      LimpiarCampos([Edit1,Edit2,Edit3,Edit4,Edit5,Edit6,Edit7,ComboBox1,Combobox2]);
              DesactivarCampos([Edit1,Edit2,Edit3,Edit4,Edit5,Edit6,Edit7,ComboBox1,Combobox2]);
		    // -- Inicio Botones
	      CargarBotonesInicio;
		    // -- Fin Botones
              Alta_ONT.Cursor:= crDefault;
              ADOQuery1.Active := False;
	      bnuevo.SetFocus;
       End;
		except
			on E:Exception do      // Si hay Error de Conexión
			begin
				DMod1.AdoConnection1.RollbackTrans;
                                Alta_ONT.Cursor:= crDefault;
                                ADOQuery1.Active := False;
                                MSG:='Ocurrió un error al guardar los datos: ' + E.Message;
				Application.MessageBox(PChar(MSG),'ERROR !!!', MB_ICONSTOP );
				Abort;
				exit;
			end;  // on
       End; // try
	   End
		Else
		  Begin
			AdoQuery1.Close;            // cierro la tabla.
			AdoQuery1.Open;             // abro la Tabla
			Alta_ONT.Cursor:= crDefault;
                        ADOQuery1.Active := False;
			msInfo('¡CANCELADO POR EL USUARIO!.','Atención Proceso Cancelado..');
                        BCancelar.SetFocus;
			exit;
		  End;
   End;
Responder Con Cita
  #22  
Antiguo 04-03-2017
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.
Cita:
Empezado por koalasoft Ver Mensaje
Mi pregunta relacionado a esto fue que he intentado que mi procedimiento para actualizar un registro lo hace bien, puesto que al intentar actualizar me sale el siguiente mensaje:

---------------------------
Debugger Exception Notification
---------------------------
Project CTRO.exe raised exception class EOleException with message 'No se puede encontrar la fila para su actualización: algunos valores han cambiado desde la última vez que se leyó'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------

Te comento rapido, antes mi base de datos mysql (mariadb) estaba en un servidor Windows, por necesidades exporte la base de datos ahora a un servidor Linux, al querer usar el sistema nuevamente me aparece este mensaje al querer actualizar un registro, cosa que antes en el anterior servidor no lo hacia.
Entiendo entonces, que tu programa funcionaba bién hasta que realizaste el cambio. Revisa en estos enlaces donde se menciona dicho error a ver si alguno de los casos se corresponde con el tuyo o te orienta al respecto:
Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
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
actualizacion del help 129 zidfrid C++ Builder 0 13-08-2007 00:22:56
Actualizacion principiante22 Internet 2 09-07-2007 16:36:55
Actualización con SQL luxus Conexión con bases de datos 4 08-07-2006 16:23:24
Actualizacion con ADO Carlex Conexión con bases de datos 5 09-08-2005 08:08:57
actualizacion en red @-Soft Conexión con bases de datos 1 12-08-2003 09:55:06


La franja horaria es GMT +2. Ahora son las 00:43:35.


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