FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Bueno, con la idea de tefots pude hacer algo que se adapte a lo que necesitaba, me di cuenta de que al adoquery le tomaba 5.5 segs para actualizar la base de datos, asi que puse un timer con un interval:6000 y resuelto jeje. Bueno, gracias a todos por sus respuestas
__________________
Att: ΓħΞ ŘēąĿ βļåķΣ |
#2
|
||||
|
||||
Hola
Me alegro que lo resolvieras. Solo para que te des una idea de como lo hago yo: Saludos
__________________
Siempre Novato |
#3
|
||||
|
||||
Talvez dentro de algunos 30 años yo este a ese nivel
__________________
Att: ΓħΞ ŘēąĿ βļåķΣ |
#4
|
||||
|
||||
Hola
Que va, no te subestimes, el mas Novato aqui soy yo, con solo un par de años en esto. Pronto harás cosas de verdad, mucho mejor que estas. Saludos
__________________
Siempre Novato |
#5
|
|||
|
|||
Cita:
Gracias !! |
#6
|
||||
|
||||
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: Cita:
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#7
|
|||
|
|||
Cita:
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; |
#8
|
||||
|
||||
Hola.
Cita:
Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#9
|
|||
|
|||
me alegro que funcionara.
todas formas eso de esperar 6 segundos para poder ver los datos desde otro query es mas que raro , rarisimo. en teoria cuando finalizas la transaccion , los datos ya deben estár inmediatamente disponibles y debes poder verlos desde la propia aplicación o desde otra. lo del If adoquery1.connection.intransaction then Adoquery1.connection.CommitTrans lo que hace es mirar si la conexion asociada al adoquery tiene una transaccion abierta , tonces hace commit de la transaccion. lo logico seria hacerlo directamente con el adoconnection , pero como no se si tienes algun adoconnection enlazado por eso lo puse asi. que base de datos utilizas ?. tienes algun adoconnection enlazado , uno por cada adoquery o uno para los dos ? , alo mejor esta ahi el problema por cierto , lo de los querys perezosos yo nunca lo habia oido ni nunca me ha pasado , a lo mejor es que los datos se paran a tomar un café antes de que esten 'disponibles'. saludos. Cita:
|
#10
|
||||
|
||||
tefots, use una base de datos de access y no tengo ningun adoconnection, pero despreocupate, aunque dure 6 segs para estar disponible, para lo que necesito, esta mas que bueno. Gracias de nuevo por tu interes
__________________
Att: ΓħΞ ŘēąĿ βļåķΣ |
|
|
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 |
|