
[RESUELTO] dataset not in edit or insert mode
#1
Escrito 23 enero 2011 - 10:57
Al añadir los datos me da este error "dataset not in edit or insert mode".
Las tablas estan abiertas y en modo append. no entiendo que pasa.
;e podeis ayudar?.
Un saludo.
#2
Escrito 23 enero 2011 - 11:06
Podrías regalarnos un poco mas de información?
-Como te conectas?
-Si es posible un poco de tu código, (en donde te sale el error).
Saludos
#3
Escrito 23 enero 2011 - 11:45
el codigo
if TMaq.Locate('Ser',OSer.Text,[]) then TCont.Open ; TCont.Edit ; TCont.FieldValues['Fec'] := cFec.Date ; TCont.FieldValues['Ca1'] := StrToFloatDef(Cb1.Text,0) ; TCont.FieldValues['Ca05'] := StrToFloatDef(Cb05.Text,0) ; Dt4.TCont.Post ;
el error me lo da cuando entra en la tabla TCont.
#4
Escrito 23 enero 2011 - 11:58
En caso de que Locate devuelva True, lo que hará es Abrir la tabla TCont, posicionarse en el primer registro y editarlo ( no se si eso es lo que quieres) de todas formas te faltan el begin y el end para que no de error en caso de que Locate devuelva false. Si lo que qieres es agregar un nuevo resgistro cambia el TCot.Edit por TCont:Append.
if TMaq.Locate('Ser',OSer.Text,[]) then begin TCont.Open ; TCont.Edit ; TCont.FieldValues['Fec'] := cFec.Date ; TCont.FieldValues['Ca1'] := StrToFloatDef(Cb1.Text,0) ; TCont.FieldValues['Ca05'] := StrToFloatDef(Cb05.Text,0) ; TCont.Post end
#5
Escrito 23 enero 2011 - 01:34
TMaq.Open ; TCont.open ; TMaq.Append ; TCont.Append ; TMaq.FieldValues['Ser'] := ASer.Text ; TCont.FieldValues['Ser'] := ASer.Text ; TMaq.FieldValues['Mod'] := AMod.Text ; TCont.FieldValues['Fec'] := AFec.Date ; TCont.FieldValues['Ca1'] := StrToFloatDef(Ca1.Text,0) ; Tcont.FieldValues['Ca2'] := StrToFloatDef(Ca2.Text,0) ; TCont.FieldValues['Ca05'] := StrToFloatDef(Ca05.Text,0) ; TCont.FieldValues['Ca02'] := StrToFloatDef(Ca02.Text,0) ; TCont.FieldValues['Ca01'] := StrToFloatDef(Ca01.Text,0) ; TMaq.Post ; TCont.Post ;
Oerdona pero me he equivocado de codigo.
Este es el codigo que me da el error, al añadir en tabla Tcont.
#6
Escrito 24 enero 2011 - 05:14
Perdona pero me he equivocado de codigo.
Este es el codigo que me da el error, al añadir en tabla Tcont.
¿ En que línea salta el error ?.
#7
Escrito 24 enero 2011 - 01:52
TCont.FieldValues['Ser'] := ASer.Text ;
en esta linea.
#8
Escrito 24 enero 2011 - 02:34
Saludos
#9
Escrito 24 enero 2011 - 02:39
Yo te aconsejo que hagas las cosas de forma secuencial, es decir
TMaq.Open ; TMaq.Append ; TMaq.FieldValues['Ser'] := ASer.Text ; TMaq.FieldValues['Mod'] := AMod.Text ; TMaq.Post ; TCont.open ; TCont.Append ; TCont.FieldValues['Ser'] := ASer.Text ; TCont.FieldValues['Fec'] := AFec.Date ; TCont.FieldValues['Ca1'] := StrToFloatDef(Ca1.Text,0) ; Tcont.FieldValues['Ca2'] := StrToFloatDef(Ca2.Text,0) ; TCont.FieldValues['Ca05'] := StrToFloatDef(Ca05.Text,0) ; TCont.FieldValues['Ca02'] := StrToFloatDef(Ca02.Text,0) ; TCont.FieldValues['Ca01'] := StrToFloatDef(Ca01.Text,0) ; TCont.Post ;
Saludos,
#10
Escrito 25 enero 2011 - 05:08
Revisa si depronto hay un evento ONChange asociado con ese campo, o con el dbcontrol de ese campo, o con el TDataSource, que depronto llamara a Post antes de terminar el procedimiento.
Coincido en que esto parece lo más probable.
Hay algún evento que te hace un Post en el Dataset.
#11
Escrito 26 enero 2011 - 02:27
al final he echo lo que me dijo pacopenin y funciona perfectamente.
Gracias a todos por vuestra ayuda.
Un saludo