Mensaje    Asunto: Como lo soluciono (transacciones o algun otro metodo) Responder citando

Buenas gente, tengo un problema, no se como hacerlo y no se me ocurre, lo que he probado no funciono como queria asi que ahora recurro a ustedes...
Mi aplicacion se conecta con una base de datos (firebird) de la cual obtiene un listado de articulos (segun la condicion que el usuario quiera)
ahora lo que quiero hacer es basicamente una factura (y guardarlas).
pero la cosa es asi..
El usuario busca en la tabla ARTICULOS segun una condicion, luego ira seleccionando los que el quiera de esta lista (que se muestra en un DBGRID) y que al pulsar un boton lo agregue a la factura. y asi vaya seleccionando los que el quiera (uno o varios por cada busqueda de articulos)
Como paso estos articulos que el usuario selecciono a la tabla FACTURAS y que pueda aceptar o cancelar la factura en cualquier momento?

las tablas son asi:
Código:
CREATE TABLE ARTICULO (
  CODIGO INTEGER NOT NULL,
  NOMBRE VARCHAR(35) CHARACTER SET ISO8859_3 NOT NULL COLLATE ISO8859_3,
  FECHA DATE,
  DESCRIPCION VARCHAR(100) CHARACTER SET ISO8859_3 COLLATE ISO8859_3,
  PRECIO DM_DINERO NOT NULL);


Código:
CREATE TABLE FACTURERO (
  NUMERO INTEGER NOT NULL,
  FECHA DATE NOT NULL,
  SENIOR VARCHAR(50) CHARACTER SET ISO8859_3 DEFAULT '' NOT NULL COLLATE ISO8859_3,
  DOMICILIO VARCHAR(50) CHARACTER SET ISO8859_3 COLLATE ISO8859_3,
  IVA DM_IVA NOT NULL,
  COND_DE_VENTA VARCHAR(30) CHARACTER SET ISO8859_3 COLLATE ISO8859_3,
  REMITO VARCHAR(50) CHARACTER SET ISO8859_3 COLLATE ISO8859_3,
  TARJETA VARCHAR(30) CHARACTER SET ISO8859_3 COLLATE ISO8859_3,
  NUM_TARJETA INTEGER,
  CUIT_NUM VARCHAR(30) CHARACTER SET ISO8859_3 COLLATE ISO8859_3,
  TOTAL DM_DINERO NOT NULL);


Código:
CREATE TABLE DETALLE_FACTURA (
  CODIGO_FACTURA INTEGER DEFAULT 0 NOT NULL,
  CANTIDAD INTEGER DEFAULT 0 NOT NULL,
  DETALLE VARCHAR(40) CHARACTER SET ISO8859_3 DEFAULT '' NOT NULL COLLATE ISO8859_3,
  UNITARIO DM_DINERO DEFAULT 0 NOT NULL,
  IMPORTE DM_DINERO NOT NULL);


Agradezco cualquier sugerencia y orientacion...
Un abrazo, espero sus respuestas.