Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-03-2011
Lenny Lenny is offline
Miembro
 
Registrado: jun 2007
Posts: 161
Poder: 17
Lenny Va por buen camino
Question Error "DatAset not in edit or intert mode" ESTANDO EN MODO INSERT!!!

Estimados, me tiene de cabeza este error, les dejo el codigo que utilizo en un TButton:

Código Delphi [-]
procedure TOTWizard.Button1Click(Sender: TObject);
begin
BDatos.OCPRODUCTOSTAB.Insert;
BDatos.OCPRODUCTOSTAB.FieldbyName('OC').AsString := DBEdit14.Text;
BDatos.OCPRODUCTOSTAB.FieldbyName('CODIGO').AsString := BDatos.WPRODUCTOSTAB.FieldbyName('CODIGO').AsString;
BDatos.OCPRODUCTOSTAB.FieldbyName('DESCRIPCION').AsString := BDatos.WPRODUCTOSTAB.FieldbyName('DESCRIPCION').AsString;
BDatos.OCPRODUCTOSTAB.FieldbyName('PRODUCTO').AsString := BDatos.WPRODUCTOSTAB.FieldbyName('PRODUCTO').AsString;
BDatos.OCPRODUCTOSTAB.FieldbyName('MAYOR').AsString := BDatos.WPRODUCTOSTAB.FieldbyName('MAYOR').AsString;
BDatos.OCPRODUCTOSTAB.FieldbyName('DETALLE').AsString := BDatos.WPRODUCTOSTAB.FieldbyName('DETALLE').AsString;
BDatos.OCPRODUCTOSTAB.FieldbyName('CANTIDAD').AsString := Edit5.Text;
BDatos.OCPRODUCTOSTAB.FieldbyName('TOTAL').AsString := Edit4.Text;
BDatos.OCPRODUCTOSTAB.Post;
end;

A pesar de estar en modo Insert
Código Delphi [-]
begin
BDatos.OCPRODUCTOSTAB.Insert;
Al precionar el Boton me lanza este error:

Código Delphi [-]
OCPRODUCTOSTAB: Dataset not in edit or insert mode.

Gracias de antemano ante cualqueir ayuda.

Utilizo Delphi 2010, Zeos 7.0.0, MySQL.

Última edición por Lenny fecha: 23-03-2011 a las 19:52:32.
Responder Con Cita
  #2  
Antiguo 23-03-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
y el open?
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #3  
Antiguo 23-03-2011
Lenny Lenny is offline
Miembro
 
Registrado: jun 2007
Posts: 161
Poder: 17
Lenny Va por buen camino
Question

asi:

Código Delphi [-]
procedure TOTWizard.Button1Click(Sender: TObject);
begin
BDatos.OCPRODUCTOSTAB.Open;
BDatos.OCPRODUCTOSTAB.Insert;
BDatos.OCPRODUCTOSTAB.FieldbyName('OC').AsString := DBEdit14.Text;
BDatos.OCPRODUCTOSTAB.FieldbyName('CODIGO').AsString := BDatos.WPRODUCTOSTAB.FieldbyName('CODIGO').AsString;
BDatos.OCPRODUCTOSTAB.FieldbyName('DESCRIPCION').AsString := BDatos.WPRODUCTOSTAB.FieldbyName('DESCRIPCION').AsString;
BDatos.OCPRODUCTOSTAB.FieldbyName('PRODUCTO').AsString := BDatos.WPRODUCTOSTAB.FieldbyName('PRODUCTO').AsString;
BDatos.OCPRODUCTOSTAB.FieldbyName('MAYOR').AsString := BDatos.WPRODUCTOSTAB.FieldbyName('MAYOR').AsString;
BDatos.OCPRODUCTOSTAB.FieldbyName('DETALLE').AsString := BDatos.WPRODUCTOSTAB.FieldbyName('DETALLE').AsString;
BDatos.OCPRODUCTOSTAB.FieldbyName('CANTIDAD').AsString := Edit5.Text;
BDatos.OCPRODUCTOSTAB.FieldbyName('TOTAL').AsString := Edit4.Text;
BDatos.OCPRODUCTOSTAB.Post;
end;

Mismo error, nunca me habia pasado antes... no se que pasa!!!
Responder Con Cita
  #4  
Antiguo 23-03-2011
Avatar de gatosoft
[gatosoft] gatosoft is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Bogotá, Colombia
Posts: 833
Poder: 21
gatosoft Va camino a la fama
Amigo Lenny, ¿en que línea te sale el error?, me huele que debe haber código en ´registrado en un evento intermedio, como por ejemplo en el OnNewRecord, y allí estas asignando porpiedades y haciendo un post (no debe hacerse post en un OnNewRecord)...

Por ahora se me ocurre eso... revisa los eventos del Dataset, para confirmar esto... o mejor aun realiza un seguimiento pasoa a paso con f7 para saber en que línea falla y a que eventos está entrando...

un saludo,
Responder Con Cita
  #5  
Antiguo 23-03-2011
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 Lenny.

Sería interesante que usaras un break para ver en que línea se dispara la excepción.

Aunque no trabajo con Zeos ni MySQL, viendo tus líneas de código sólo se me ocurre que en algun evento del DataSet: 'OCPRODUCTOSTAB',
estes realizando alguna accíon que lo saque del estado dsInsert.

Quizá AfterInsert sea un buen candidato...

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 23-03-2011 a las 21:13:31.
Responder Con Cita
  #6  
Antiguo 23-03-2011
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
ZTable o ZQuery?.
Si se quiere hacer un insert de una consulta (de un Zquery) generara ese error.
Si es un ZTable, no tiene explicacion.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #7  
Antiguo 23-03-2011
Lenny Lenny is offline
Miembro
 
Registrado: jun 2007
Posts: 161
Poder: 17
Lenny Va por buen camino
Question

Es un ZTable... y como dices... no tiene explicacion... aun no doy con el problema... please help me!!!
E echo todo como siempre, de echo todo lo demas funciona bien, e intentado replicar solo el ingreso a la tabla y aun asi lanza el mismo error...

EDIT:

Utilizo un DataSource, ZConnection y ZTable...

Última edición por Lenny fecha: 23-03-2011 a las 21:28:40.
Responder Con Cita
  #8  
Antiguo 23-03-2011
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Lo unico que se me ocurre es que esto:
BDatos.WPRODUCTOSTAB.
No este Activo y no encuentre los datos.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #9  
Antiguo 23-03-2011
Lenny Lenny is offline
Miembro
 
Registrado: jun 2007
Posts: 161
Poder: 17
Lenny Va por buen camino
Question

En el fondo el codigo seria asi:

Código Delphi [-]
procedure Form1.Button1Click(Sender: TObject);
begin
DataModule1.ZTable1.Open;
DataModule1.ZTable1.Insert;
DataModule1.ZTable1.FieldbyName('OC').AsString := DBEdit14.Text;
...
...
DataModule1.ZTable1.Post;
end;

No se que mas detalles puedo entregar... gracias de antemano... aps... y esta activo...
Responder Con Cita
  #10  
Antiguo 23-03-2011
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Cabria una pregunta tonta:
El conector a la BD esta activo en el datamodule?.
Me refiero al ZConnection.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #11  
Antiguo 23-03-2011
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Primero asegúrate que el Insert funcuiona, por ejemplo, con

Código Delphi [-]
DataModule1.ZTable1.Open;
DataModule1.ZTable1.Insert;

Assert(DataModule1.ZTable1.State = dsInsert);

Si salta un error de "Assertion failure" es que no puede ponerse en modo de inserción. Si esto es así, podrías revisr qué es lo que lo impide. Por ejemplo, que tengas en true la propiedad ReadOnly del DataSet.

// Saludos
Responder Con Cita
  #12  
Antiguo 23-03-2011
Lenny Lenny is offline
Miembro
 
Registrado: jun 2007
Posts: 161
Poder: 17
Lenny Va por buen camino
Question

Caral, si esta activo el ZConnection.
roman, utilizo tu codigo y no pasa nada, no error ni nada... quedo asi:

Código Delphi [-]
procedure TOTWizard.Button1Click(Sender: TObject);
begin
BDatos.OCPRODUCTOSTAB.Open;
BDatos.OCPRODUCTOSTAB.Insert;
Assert(BDatos.OCPRODUCTOSTAB.State = dsInsert);
end;

Cualquier otra duda al respecto estare pendiente, muchas gracias de antemano!!!
Responder Con Cita
  #13  
Antiguo 23-03-2011
Avatar de gatosoft
[gatosoft] gatosoft is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Bogotá, Colombia
Posts: 833
Poder: 21
gatosoft Va camino a la fama
hiciste la prueba que ecfisa y yo te sugerimos?: buscar en los eventos del dataset (onnewrecord, afterinsert)?, hacer seguimiento paso a paso al codigo?...
Responder Con Cita
  #14  
Antiguo 23-03-2011
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Aún no contestas cuál es la línea exacta del error.

// Saludos
Responder Con Cita
  #15  
Antiguo 23-03-2011
Lenny Lenny is offline
Miembro
 
Registrado: jun 2007
Posts: 161
Poder: 17
Lenny Va por buen camino
Talking

Probe todo lo que me decian, pero extrañamente despues de hacer todo lo que me dijeron, mas crear las conexiones de nuevo y borrar la base de datos comenso a funcionar como si nada...

Gracias por toda la ayuda y comentarios, Tendre en cuenta los comentarios para futuros errores... GRACIAS A TODOS!!!
Responder Con Cita
  #16  
Antiguo 23-03-2011
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Cita:
Empezado por Lenny Ver Mensaje
Probe todo lo que me decian, pero extrañamente despues de hacer todo lo que me dijeron, mas crear las conexiones de nuevo y borrar la base de datos comenso a funcionar como si nada...

Gracias por toda la ayuda y comentarios, Tendre en cuenta los comentarios para futuros errores... GRACIAS A TODOS!!!
Fue un poco difícil acceder a tu computadora, pero resultó un placer.

Ya, en serio, ojalá tengas una copia o de alguna forma puedas volver a reproducir el error, para asegurarnos de que no vaya a quedar latente (y que nos digas ahora sí cuál es la línea de código donde se elevaba la excepción).
Responder Con Cita
  #17  
Antiguo 23-03-2011
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Cita:
Empezado por Al González Ver Mensaje
Fue un poco difícil acceder a tu computadora, pero resultó un placer.

jajajaja, muy buena esa, jajajaja
__________________

Responder Con Cita
  #18  
Antiguo 24-05-2011
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 547
Poder: 17
jhonalone Va por buen camino
Hola a todos.
Para quien le pueda interesar: Ecfisa tiene razón.
A mí me dío el mismo error por colocar el siguiente código en el evento "AfterInsert".
Código Delphi [-]
procedure TFClien.ClienDBAfterInsert(DataSet: TDataSet);
begin
ClienDB.FlushBuffers;
end;
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
Error ("not in edit or insert mode") en Update con ADOQuery miquellg SQL 8 16-05-2011 20:11:07
DataSet not in edit or insert mode Mystery Varios 2 09-06-2010 17:40:17
Dataset not in edit or insert Mode radge OOP 1 10-06-2008 15:46:32
Dataset not in edit or insert mode :S si esta en append! Mannu C++ Builder 1 28-11-2007 09:52:18
ayuda novata: "Dataset not in Edit or Insert mode" maquicu Tablas planas 1 05-06-2004 09:40:27


La franja horaria es GMT +2. Ahora son las 21:17:51.


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