Solo se guarda un solo registro en detalle de factura

Estoy guardando un detalle de factura en foxpro usando firebird como base de datos cuando intento guardar solo me guardar un registro uso este código

c1 = thisform.mnumero.value
c2 = thisform.mtotal.value
c3 = thisform.text7.value
c4 = thisform.text5.value
c5 = thisform.text6.value
c6 = thisform.condicion.listitemid
c7 = thisform.precio.listitemid
c8 = thisform.referencia.value
c9 = thisform.tiponcf.listitemid
c10 = thisform.fecha.value 
c11 = thisform.codigo.value
c12 = thisform.nombre.value
c13 = thisform.dirrecion.value
c14 = thisform.cedula.value
c15 = thisform.telefono.value
c16 = thisform.cod_emp.value
c17 = thisform.des_emp.value
sqlexec(phandle_ident, "execute procedure gm_facturacion(?c1, ?c2, ?c3, ?c4, ?c5, ?c6, ?c7, ?c8, ?c9, ?c10, ?c11, ?c12, ?c13, ?c14, ?c15, ?c16, ?c17)")
***guarda detalle de factura***
select detalle_factura
go top
df2 = cod_items
df3 = cantidad
df4 = precio
df5 = costo
df6 = itebis
df7 = descuento
df8 = dgii
df9 = descripción
sqlexec(phandle_ident, "execute procedure gm_detfacturacion(?c1, ?df2, ?df3, ?df4, ?df5, ?df6, ?df7, ?df8, ?df9)")

En la tabla de firebird tengo un indice correspondiente al numero de factura uso este código

update or insert into sqldetfacturacion
(num_factura, cod_items, cant_vendida, precio_venta, costo_venta, itebis_venta, desc_venta, dgii, nom_items)
values (:mnum_factura, :mcod_items, :mcant_vendida, :mprecio_venta, :mcosto_venta, :mitebis_venta, :mdesc_venta, :mdgii, :mnom_items

Respuesta
1

Usas Update (Actualizar) en vez de Insert (Agregar).

Osea que lo use separado como lo aria en una tabla nativa de foxpro

El lenguaje SQL es similar en cualquier sistema; varia por muy poca cosa. O sea que sí, es igual.

No lo he podido resolver le quite el indice

Hice un inert into y no solo guarda uno o el primero o el ultimo

select detalle_factura
go bottom
df1 = nun_fact
df2 = cod_items
df3 = cantidad
df4 = precio
df5 = costo
df6 = itebis
df7 = descuento
df8 = dgii
df9 = descripción
sqlexec(phandle_ident, "execute procedure insert_detfacturacion(?df1, ?df2, ?df3, ?df4, ?df5, ?df6, ?df7, ?df8, ?df9)")

También le quite go top y go bottom no me funciona algo lo estoy haciendo mal

Es que estás pasando solo unos datos y no todos los que quieres de la tabla.. mira a ver si te funciona así.

select detalle_factura
scan
   df1 = nun_fact
   df2 = cod_items
   df3 = cantidad
   df4 = precio
   df5 = costo
   df6 = itebis
   df7 = descuento
   df8 = dgii
   df9 = descripción
   sqlexec(phandle_ident, "execute procedure insert_detfacturacion(?df1, ?df2, ?df3, ?df4, ?df5, ?df6, ?df7, ?df8, ?df9)")
Endscan

¡Gracias! perfecto mil gracias amigo

De nada amigo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas