FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Error ("not in edit or insert mode") en Update con ADOQuery
ante todo gracias por pararte a leer esto.
me encuentro con un problema en un update que intento realizar a traves de una ADOQuery. Parece ser que el dataset relacionado no me permite editar la fila seleccionada. Paso un trozo del código : Leo los registros de la Query ADOQyArticles y realizo el update con ADOQyStocks en una tabla diferente. Creo que me he hecho un lio con el open,close,active ... El error que me devuelve al hacer el Post es "DataSet not in Edit or insert mode". Tengo dudas acerca de como hacer el commit una vez realizado todo el proceso. Gracias por vuestra ayuda. |
#2
|
||||
|
||||
Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
#3
|
|||
|
|||
ante todo gracias marcos por tu rapida respuesta.
En relacion a tu consejo : 1.- si quito ADOQystocks.Active ocurre lo mismo. 2.- si pongo el ADOQystocks.Edit me da el error "ADOQyStocks: Cannot perfom this operation on a closed dataset'. ADOConec: TADOConnection; ADOQyArticles: TADOQuery; DSarticles: TDataSource; ADOQyStocks: TADOQuery; DSstocks: TDataSource; while not ADOQyArticles.Eof do begin ADOQystocks.SQL.Clear; ADOQyStocks.SQL.Add('update F_ARTSTOCK ' + ' set AS_QTEMINI= :Parm_min,AS_QTEMAXI= :Parm_max ' + ' where AS_PRINCIPAL = 1 ' + ' AND AR_REF = '+ #39 + codrefe + #39 ); ADOQyStocks.Parameters.ParamValues['Parm_min'] := round (dias_min * venta_dia); ADOQyStocks.Parameters.ParamValues['Parm_max'] := round (dias_max * venta_dia); ADOQyStocks.ExecSQL; //ADOQystocks.Active; Esto te sobra //si sigue dando error pon añade: AdoQyStocks.Edit; AdoQyStocks.Post; ADOQyArticles.Next; end; ADOConec.CommitTrans; Gracias por la ayuda prestada |
#4
|
||||
|
||||
Cita:
Es sólo un pálpito. Saludos
__________________
Por qué todas las personas saben exactamente cómo debemos vivir nuestra vida, y nunca tienen idea de cómo deben vivir sus propias vidas.
|
#5
|
|||
|
|||
Parece que tampoco funciona, el mismo error.
Cambio la forma de la pregunta: Alguien podria decirme que componentes necesito para modificar un registro con ADOquery y en que orden debo abrir, cerrar, editar, etc ... |
#6
|
||||
|
||||
Hola.. pero el error que te da es que el DataSet está cerrado... ¿y si dejas todo abierto y lo ejecutas desde delphi?
Saludos
__________________
Por qué todas las personas saben exactamente cómo debemos vivir nuestra vida, y nunca tienen idea de cómo deben vivir sus propias vidas.
|
#7
|
|||
|
|||
AdoQyStocks.Post;
AdoQyStocks.Post;
Esto no tiene sentido hacerlo. quitalo y te funcionara |
#8
|
|||
|
|||
Cita:
Hola que tal, oye cómo lograste resolver este problema, me está sucediendo lo mismo a mi, Hago un post y despues quiero "refrescar" el dataset desactivándolo y volviendolo a activar, y justo en el Dataset.Active := True, me manda el error de Dataset no t in edit or insert mode. Saludos |
#9
|
|||
|
|||
SOlucionado
Cita:
Resulta que me pasaba este error al activar el dataset, porque en otro codigo del formulario en varios eventos (cobre todo el evento Onchange) de distintos componentes, se hacia un llamado al dataset que acababa de cerrar, para modificar valores o leerlos del dataset, y por eso me salía el msj de error, entonces controlando esos eventos dodne utilizaba el dataset siempre verificaba antes de hacer cualquier modificacions que si el dataset estaba activo lo hiciera. Y con eso tuvo. Saludos |
|
|
|