{ PROGRAMA: ORDENES OBJETIVO: IMPRTAR LAS ORDENES DE PEDIDOS DESDE SQL SERVER A INFORMIX } GLOBALS DEFINE usuarios,clave CHAR(50), numero_orden INT END GLOBALS MAIN #WHENEVER ERROR CONTINUE DEFER INTERRUPT CALL arg_val(1) RETURNING usuarios CALL arg_val(2) RETURNING clave CALL arg_val(3) RETURNING numero_orden CALL startlog("ordenes.log") CALL ordenes() END MAIN FUNCTION ordenes() CONNECT TO "smarmotech" USER usuarios USING clave UNLOAD TO "d:\\prtb012.txt" SELECT a.num_oc,CONVERT(CHAR(10),a.fecha_oc,101),a.tipo_cliente,a.sec_cliente,a.sec_vend, a.cond_pago,a.cotizacion_no,'PROCESO2' FROM prtb00012 a WHERE a.status_t IS NULL AND a.num_oc = numero_orden UNLOAD TO "d:\\prtb13.txt" SELECT a.num_oc,a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_Sec,a.cantidad, 'PROCESO2' FROM prtb00013 a,prtb00012 b WHERE b.fecha_oc BETWEEN '12/01/2013' AND '01/30/2014' AND b.status_t IS NULL AND a.num_oc = b.num_oc AND a.num_oc =numero_orden CONNECT TO "exterior" AS "ex" DELETE FROM tmpprtb00012 DELETE FROM tmpprtb00013 # WHENEVER ERROR CONTINUE # BEGIN WORK LOAD FROM "d:\\prtb012.txt" INSERT INTO TMPPRTB00012 (num_oc,fecha_oc,tipo_cliente,sec_cliente,sec_vend, cond_pago,cotizacion_no,us_crea) IF STATUS < 0 THEN # ROLLBACK WORK ERROR "ERROR EN LOAD 1" EXIT PROGRAM END IF LOAD FROM "d:\\prtb13.txt" INSERT INTO tmpprtb00013 (num_oc,cod_n,cod_grupo,cod_tipo,cod_Sec,cantidad,us_crea) IF STATUS < 0 THEN # ROLLBACK WORK ERROR "ERROR EN LOAD 2" EXIT PROGRAM END IF UNLOAD TO "d:\\xprtb12.txt" SELECT * FROM tmpprtb00012 WHERE num_oc NOT IN (SELECT num_oc FROM prtb00012) UNLOAD TO "d:\\xprtb13.txt" SELECT * FROM tmpprtb00013 WHERE num_oc NOT IN (SELECT num_oc FROM prtb00013) DELETE FROM prtb00012 WHERE num_oc IN (SELECT num_oc FROM tmpprtb00012) DELETE FROM prtb00013 WHERE num_oc IN (SELECT num_oc FROM tmpprtb00012) INSERT INTO prtb00012 SELECT * FROM tmpprtb00012 INSERT INTO prtb00013 SELECT * FROM tmpprtb00013 END FUNCTION