FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
No se porque tengo un error cuando intento insertar en la tabla
hola a todos , tengo un pequeño drama con mi tabla TZQuery, sucede lo sgte:
tengo un sistema en delphi y tengo que registrar las remisiones que se hagan en un local, osea que en mi DB tengo una tabla de remision cabecera y remision detalle que debo llenar desde el ABM de remision, al hacer click en el boton de grabar me dice que la tabla remision (TZQuery) no se encuentra en el modo de insertar o editar, ya le di muchas vueltas y estoy segura que ha de ser una estupides, porque en mi DB me guarda los datos que ingero, y cuendo edito alguna nota de remision ya almacenada, tambien me modifica sin problemas, solo que no puedo evitar que me salte ese mensaje, y asi no lo puedo entregar, por favor si me pueden ayudar, porque soy nueva con Delphi y estoy segura que me debo estar saltando algun atributo o algo que debo marcar en true o cosa parecida. P.D: Adjunto el mensaje de error por ahi se les hace familiar Desde ya muchas gracias por su ayuda |
#3
|
||||
|
||||
Hola, si vas a insertar datos lo primero que debes hacer es poner el dataset en modo Insert:
Si vas a modificar datos primero debes ponerlo en modo Edit;
Saludos.
__________________
Mi BLOG - ¡Joder, leanse la guia de estilo! Las Palabras son enanas, los ejemplos gigantes. |
#4
|
||||
|
||||
Este es el procedimiento que se ejecuta con el boton de agregar para los detalles, en el boton editar formulario, esta el remi.Edit pero en el boton de nuevo formulario tengo remi.append, entonces en lugar de eso tiene que ser remi.insert verdad?, quizas por eso agrega pero me lanza ese error...
procedure Tf_remision2.AgregarClick(Sender: TObject); var idremision: integer; cantidad: real; begin if remi.State=dsInsert then begin remi.Fields[1].AsInteger:=strtoint(DBComprobante.Text); remi.Fields[2].AsDateTime:=feini.Date; remi.Fields[3].AsDateTime:=fefin.Date; remi.Fields[4].AsString:=DBMotivo.Text; remi.Fields[5].AsString:=DBRazon.Text; remi.Fields[6].AsString:=DBRUC.Text; remi.Fields[7].AsString:=DBDestino.Text; remi.Fields[8].AsString:=DBPartida.Text; remi.Fields[9].AsString:=f_menu.nomusu.Text; remi.Fields[10].AsDateTime:=now(); remi.Fields[11].AsString:=DBLocal.Text; remi.Fields[12].AsInteger:=strtoint(DBRemision.Text); remi.Post; remi.ApplyUpdates; f_menu.conex.Commit; remi.Close; remi.Open; remi.Last; end; if remi.State=dsEdit then begin remi.Fields[1].AsInteger:=strtoint(DBComprobante.Text); remi.Fields[2].AsDateTime:=feini.Date; remi.Fields[3].AsDateTime:=fefin.Date; remi.Fields[4].AsString:=DBMotivo.Text; remi.Fields[5].AsString:=DBRazon.Text; remi.Fields[6].AsString:=DBRUC.Text; remi.Fields[7].AsString:=DBDestino.Text; remi.Fields[8].AsString:=DBPartida.Text; remi.Fields[9].AsString:=f_menu.nomusu.Text; remi.Fields[10].AsDateTime:=now(); remi.Fields[11].AsString:=DBLocal.Text; remi.Post; remi.ApplyUpdates; f_menu.conex.Commit; remi.Close; remi.Open; remi.Locate('id_remision',idremision,[]); end; des; try cantidad:=strtofloat(Cant.Text); except cantidad:=0; end; if cantidad <= merca.Fields[3].AsInteger then begin detalle.Append; detalle.Fields[1].AsInteger:=remi.Fields[0].AsInteger; detalle.Fields[3].AsInteger:=merca.Fields[0].AsInteger; detalle.Fields[2].AsFloat:=strtofloat(cant.Text); detalle.Post; detalle.ApplyUpdates; idremision:=remi.Fields[0].AsInteger; f_menu.conex.Commit; remi.Close; remi.Open; remi.Locate('id_remision',idremision,[]); end else begin showmessage('No se agregaron detalles, no hay cantidad suficiente o se modifico la cabecera'); Cant.SetFocus; end; abredetalle; end; |
#5
|
||||
|
||||
Cita:
__________________
Ask questions. Think for yourself. Wake up and you’ll make the difference |
#6
|
|||
|
|||
hola, tambien sirve...
mas que nada para no repetir el mismo codigo. Última edición por coso fecha: 14-07-2008 a las 22:43:00. |
#7
|
||||
|
||||
Cita:
Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar. |
#8
|
||||
|
||||
Rw:
ya lo pude resolver gracias a todos y saludos
|
#9
|
||||
|
||||
Y porqué no nos dices cómo y sirve que todos aprendemos ?
__________________
Ask questions. Think for yourself. Wake up and you’ll make the difference |
#10
|
||||
|
||||
jajaja, lo que sucede es que le meti tanta.... mano que ya nose cual de todos fue la solucion jajaja, pero fue algo que deje pasar por desantenta, una variable que no fue inicializada:
mi idremision fue declarado como un integer, pero no lo inicialize en el caso de que mi DBGrid Remi este en remi.edit, y otro error fue que necesitaba de otro campo mas en mi tabla para poder manippularlo que era el nro de nota de remision ya que el id era un generador autoincrementable, y otras cositas, ak y alla, si les interesa les paso el código sin ningun problema, solo que no se si les sirva, si lo quieren lo paso mañana bien comentado porque ahora ya estoy de salida del laburo... tengo que ir a la facu... saludos y besos |
#11
|
||||
|
||||
clásico...ya lo resolví pero averigüen como lo hice..chaaaaleeeee.
El conocido error de querer crear las tablas hijas cuando aún no ha sido creada la tabla maestra y por lo tanto no tenemos clave principal para identificar. Ahí se los paso el semestre que entra cuando me acuerde de ustedes loosers....jajjajaja Que mal plan no?
__________________
AKA "El animalito" ||Cordobés a mucha honra|| |
#12
|
||||
|
||||
jajaja AzidRain, ese no fue mi error.... fue algo más estupido aun, porque la tabla cabecera y el detalle estaban ambos bien creados, e insertaba correctamente, solo que ese error que adjunte en un pricipio me saltaba igual, aun estando mi TZQuery en .append para el nuevo registro y .edit para editar uno ya existente, lo que se me paso por alto por desatenta fue inicializar mi idremision(variable local), en la segunda consulta de mi "if remi.state = dsEdit ..." y por eso insertaba sin problema pero las modificaciones solo lo hacia en el primer registro insertado al principio de la tabla.... esas son cosas que uno ve al dia sgte recien, despues de haber consultado a la almohada jaja
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Error en el ApplyUpdates cuando tengo LEFT JOINS en el command text | intelectoall | Conexión con bases de datos | 1 | 27-08-2007 13:39:04 |
Intento insertar y/o editar en un DBGrid y no me permite. | joal | Conexión con bases de datos | 2 | 05-04-2007 18:17:59 |
Error cuando actualizo una tabla en SQL | liborio | Conexión con bases de datos | 1 | 10-01-2007 19:52:03 |
Insertar datos cuando una tabla tiene col con identity | La__X | SQL | 10 | 21-01-2006 00:27:23 |
|