none
AYUDA con problema en SQL server 2014 y tablas dbf RRS feed

  • Pregunta

  • Soy nuevo en el SQL Server y tengo un problema con este SP. El aplicativo .Net que invoca a este procedure y me pinta que trae 0 datos. Revisé el código y al parecer el problema está en este SP:

    USE [SUNAT_MITINCI]
    GO
    /****** Object:  StoredProcedure [dbo].[SP_IMPORTAR_DATOS]    Script Date: 04/10/2016 09:38:13 a.m. ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    -- Batch submitted through debugger: SQLQuery1.sql|7|0|C:\Users\ltupia\AppData\Local\Temp\~vs65B.sql
    
    
    
    ALTER PROC [dbo].[SP_IMPORTAR_DATOS] 
    @ANIO INT,
    @MES INT
    AS
    
    SET LANGUAGE 'Spanish'
    SET DATEFORMAT dmy;
    
    EXEC sp_configure 'show advanced options', 1
    reconfigure
    EXEC sp_configure 'Ad Hoc Distributed Queries', 1
    reconfigure
    
    SET NOCOUNT ON
    
    BEGIN TRANSACTION
    BEGIN TRY
    
    	DELETE FROM MOV_2
    	DELETE FROM MOV_1
    	DELETE FROM COMPRAS
    	DELETE FROM TMP_PROVEDORES
    	DELETE FROM TMP_CABE_MITINCI
    	DELETE FROM TMP_DETA_MITINCI
    	DELETE FROM CAB_HOJARUTA
    	DELETE FROM DET_HOJARUTA
    	DELETE FROM [dbo].[SALINS]
    	DELETE FROM CLIENTE
    	DELETE FROM MOVIMIENTO_INSUMO
    	DELETE FROM TABLAS_PRODUCCION
    	DELETE FROM MULTITABLA
    	DELETE FROM ARTICULOS
    	DELETE FROM DOCUMENTO_DETALLE WHERE YEAR(FECHA) = @ANIO
    
    	PRINT 'BORRO DATOS'
    
    	DECLARE @SQL_STRING NVARCHAR(MAX),@ANO_STRING NVARCHAR(4)
    	SET @ANO_STRING = CONVERT(VARCHAR(4),@ANIO);
    
    	PRINT 'IMPORTANDO'
    	--DECLARE @SQL_STRING NVARCHAR(MAX)
    	SET @SQL_STRING = N'
    	INSERT INTO [SALINS]
    	SELECT * FROM OPENROWSET(''VFPOLEDB'',''\\SERVIDORDB\f\Sistemas\DBFS\'+@ANO_STRING+'\PRODU\IPS\SPSALINS.DBF'';'''';'''',
    	''SELECT * FROM SPSALINS'')';
    	EXECUTE sp_executesql @SQL_STRING;
    	PRINT 'SALINS'
    	
    	--DECLARE @SQL_STRING NVARCHAR(MAX)
    	SET @SQL_STRING = N'
    	INSERT INTO CAB_HOJARUTA
    	SELECT * FROM OPENROWSET(''VFPOLEDB'',''\\SERVIDORDB\f\Sistemas\DBFS\'+@ANO_STRING+'\FACTU\IPS\CABHOJA.DBF'';'''';'''',
    	''SELECT * FROM CABHOJA'')';
    	EXECUTE sp_executesql @SQL_STRING;
    	PRINT 'CAB_HOJARUTA'
    	
    	--DECLARE @SQL_STRING NVARCHAR(MAX)
    	SET @SQL_STRING = N'
    	INSERT INTO DET_HOJARUTA
    	SELECT * FROM OPENROWSET(''VFPOLEDB'',''\\SERVIDORDB\f\Sistemas\DBFS\'+@ANO_STRING+'\FACTU\IPS\DETHOJA.DBF'';'''';'''',
    	''SELECT * FROM DETHOJA'')';
    	EXECUTE sp_executesql @SQL_STRING;
    	PRINT 'DET_HOJARUTA'
    
    	SET @SQL_STRING = N'
    	INSERT INTO MOV_2
    	SELECT * FROM OPENROWSET(''VFPOLEDB'',''\\SERVIDORDB\f\Sistemas\DBFS\'+@ANO_STRING+'\PRODU\IPS\spmov2.DBF'';'''';'''',
    	''SELECT fecha,num_mov,cod_rex,tip_ope,cantid FROM spmov2 WHERE tip_ope in (''''002'''')'')';
    	EXECUTE sp_executesql @SQL_STRING;
    	PRINT 'MOV_2'
    
    	--DECLARE @SQL_STRING NVARCHAR(MAX)
    	SET @SQL_STRING = N'
    	INSERT INTO MOV_1
    	SELECT * FROM OPENROWSET(''VFPOLEDB'',''\\SERVIDORDB\f\Sistemas\DBFS\'+@ANO_STRING+'\PRODU\IPS\spmov1.DBF'';'''';'''',
    	''SELECT num_mov,fecha,tip_pro,num_doc,ruc_tra,num_guia,placa,brevete FROM spmov1 where tip_pro in (''''002'''') '')';
    	EXECUTE sp_executesql @SQL_STRING;
    	PRINT 'MOV_1'
    
    	--DECLARE @SQL_STRING NVARCHAR(MAX)
    	SET @SQL_STRING = N'
    	INSERT INTO COMPRAS
    	SELECT * FROM OPENROWSET(''VFPOLEDB'',''\\SERVIDORDB\f\Sistemas\DBFS\'+@ANO_STRING+'\CONTA\IPS\COMPRAS.DBF'';'''';'''',
    	''SELECT '+@ANO_STRING+' AS ANIO, MES,DIA,FECEMI,FECVEN,MONEDA,TCAMBIO,TIPDOC,SERIE,NUMDOC,TIPCTE,CTACTE,COD_CTA,IMPORTE,IMPIGV,TOTCOM,PIA
    	 FROM COMPRAS'')';
    	EXECUTE sp_executesql @SQL_STRING;
    	PRINT 'COMPRAS'
    
    	--DECLARE @SQL_STRING NVARCHAR(MAX)
    	SET @SQL_STRING = N'
    	INSERT INTO TMP_PROVEDORES
    	SELECT * FROM OPENROWSET(''VFPOLEDB'',''\\SERVIDORDB\f\Sistemas\DBFS\'+@ANO_STRING+'\CONTA\IPS\COCTACTE.DBF'';'''';'''',
    	''SELECT COD_CTA,DESCRI,TIPO,NIT FROM COCTACTE WHERE TIPO IN (''''PV'''') '')';
    	EXECUTE sp_executesql @SQL_STRING;
    	PRINT 'TMP_PROVEDORES'
    
    	SET @SQL_STRING = N'
    	INSERT INTO TMP_DETA_MITINCI
    	SELECT * FROM OPENROWSET(''VFPOLEDB'',''\\SERVIDORDB\f\Sistemas\DBFS\'+@ANO_STRING+'\PRODU\IPS\SPRESPRO.DBF'';'''';'''',
    	''SELECT COD_INS,TOT_INS,NUM_DOC,FEC_PRO,1 FROM SPRESPRO'')';
    	EXECUTE sp_executesql @SQL_STRING;
    	PRINT 'TMP_DETA_MITINCI'
    
    	--DECLARE @SQL_STRING NVARCHAR(1000)
    	SET @SQL_STRING = N'
    	INSERT INTO TMP_DETA_MITINCI
    	SELECT * FROM OPENROWSET(''VFPOLEDB'',''\\SERVIDORDB\f\Sistemas\DBFS\'+@ANO_STRING+'\PRODU\IPS\SPMOV2.DBF'';'''';'''',
    	''SELECT COD_REX,CANTID,NUM_DOC,FECHA,2 FROM SPMOV2 WHERE TIP_OPE>''''200'''' '')';
    	EXECUTE sp_executesql @SQL_STRING;
    	PRINT 'TMP_DETA_MITINCI'
    
    	--DECLARE @SQL_STRING NVARCHAR(1000)
    	SET @SQL_STRING = N'
    	INSERT INTO TMP_CABE_MITINCI
    	SELECT * FROM OPENROWSET(''VFPOLEDB'',''\\SERVIDORDB\f\Sistemas\DBFS\'+@ANO_STRING+'\PRODU\IPS\SPORDPRO.DBF'';'''';'''',
    	''SELECT ORD_PRO,COD_REX,TOT_ENV,1 FROM SPORDPRO'')';
    	EXECUTE sp_executesql @SQL_STRING;
    	PRINT 'TMP_CABE_MITINCI'
    
    	--DECLARE @SQL_STRING NVARCHAR(1000)
    	SET @SQL_STRING = N'
    	INSERT INTO TMP_CABE_MITINCI
    	SELECT * FROM OPENROWSET(''VFPOLEDB'',''\\SERVIDORDB\f\Sistemas\DBFS\'+@ANO_STRING+'\PRODU\IPS\SPMOV1.DBF'';'''';'''',
    	''SELECT NUM_DOC,NUM_MOV,0,2 FROM SPMOV1'')';
    	EXECUTE sp_executesql @SQL_STRING;
    	PRINT 'TMP_CABE_MITINCI'
    
    	SET @SQL_STRING = N'
    	INSERT INTO CLIENTE
    	SELECT * FROM OPENROWSET(''VFPOLEDB'',''\\SERVIDORDB\f\Sistemas\DBFS\'+@ANO_STRING+'\FACTU\IPS\FPMASCLI.DBF'';'''';'''',
    	''SELECT * FROM FPMASCLI'')';
    	EXECUTE sp_executesql @SQL_STRING;
    	PRINT 'CLIENTE'
    
    	--DECLARE @SQL_STRING NVARCHAR(MAX)
    	SET @SQL_STRING = N'
    	INSERT INTO TABLAS_PRODUCCION
    	SELECT * FROM OPENROWSET(''VFPOLEDB'',''\\SERVIDORDB\f\Sistemas\DBFS\'+@ANO_STRING+'\PRODU\IPS\SPTABLAS.DBF'';'''';'''',
    	''SELECT TIPOS,CODNR,DESCR,ABREV,CANTI FROM SPTABLAS WHERE TIPOS IN (''''05'''') '')';
    	EXECUTE sp_executesql @SQL_STRING;
    	PRINT 'TABLAS_PRODUCCION'
    	
    	--DECLARE @SQL_STRING NVARCHAR(MAX)
    	SET @SQL_STRING = N'
    	INSERT INTO MOVIMIENTO_INSUMO
    	SELECT * FROM OPENROWSET(''VFPOLEDB'',''\\SERVIDORDB\f\Sistemas\DBFS\'+@ANO_STRING+'\PRODU\IPS\spmov2.DBF'';'''';'''',
    	''SELECT ''''TBL1'''',fecha,num_doc,tip_ope,cod_rex,cantid,'''''''' FROM spmov2  '')';
    	EXECUTE sp_executesql @SQL_STRING;
    	PRINT 'MOVIMIENTO_INSUMO TBL1'
    
    	--DECLARE @SQL_STRING NVARCHAR(MAX)
    	SET @SQL_STRING = N'
    	INSERT INTO MOVIMIENTO_INSUMO
    	SELECT * FROM OPENROWSET(''VFPOLEDB'',''\\SERVIDORDB\f\Sistemas\DBFS\'+@ANO_STRING+'\PRODU\IPS\SPRESPRO.DBF'';'''';'''',
    	''SELECT ''''TBL2'''',fec_pro,num_doc,tip_pro,cod_ins,tot_ins,item FROM SPRESPRO '')';
    	EXECUTE sp_executesql @SQL_STRING;
    		PRINT 'MOVIMIENTO_INSUMO TBL2'
    
    
    	
    	SET @SQL_STRING = N'
    	INSERT INTO MULTITABLA
    	SELECT * FROM OPENROWSET(''VFPOLEDB'',''\\SERVIDORDB\f\Sistemas\DBFS\'+@ANO_STRING+'\FACTU\IPS\fpmastab.DBF'';'''';'''',
    	''SELECT * FROM fpmastab'')';
    	EXECUTE sp_executesql @SQL_STRING;
    	print 'MULTITABLA'
    
    	SET @SQL_STRING = N'
    	INSERT INTO ARTICULOS
    	SELECT * FROM OPENROWSET(''VFPOLEDB'',''\\SERVIDORDB\f\Sistemas\DBFS\'+@ANO_STRING+'\FACTU\IPS\FPMASART.DBF'';'''';'''',
    	''SELECT * FROM FPMASART'')';
    	EXECUTE sp_executesql @SQL_STRING;
    	print 'ARTICULOS'
    
    
    
    	print 'IMPORTANDO VENTAS'
    
    	IF(@MES<=1)
    	BEGIN
    	SET @SQL_STRING = N'
    	INSERT INTO DOCUMENTO_DETALLE(MES,SERPED,NUMPED,TFACTU,DIVVEN,NUMFAC,UBICA,TIPO,CODART,COLOR,MEDIDA,LVENTA,
    	MONEDA,TCAMBIO,CODCLI,NUMVEN,PVF,IGV,FECHA,CANT,DCTO01,LINVEN,VALCOS,LTECNI)
    	SELECT * FROM OPENROWSET(''VFPOLEDB'',''\\SERVIDORDB\f\Sistemas\DBFS\'+@ANO_STRING+'\FACTU\IPS\SWMO0201.DBF'';'''';'''',
    	''SELECT MES,SERPED,NUMPED,TFACTU,DIVVEN,NUMFAC,UBICA,TIPO,CODART,COLOR,MEDIDA,LVENTA,
    	MONEDA,TCAMBIO,CODCLI,NUMVEN,PVF,IGV,FECHA,CANT,DCTO01,LINVEN,VALCOS,LTECNI FROM SWMO0201'')';
    	EXECUTE sp_executesql @SQL_STRING;
    
    	END
    	PRINT 'ENERO'
    	IF(@MES<=2)
    	BEGIN
    	SET @SQL_STRING = N'
    	INSERT INTO DOCUMENTO_DETALLE(MES,SERPED,NUMPED,TFACTU,DIVVEN,NUMFAC,UBICA,TIPO,CODART,COLOR,MEDIDA,LVENTA,
    	MONEDA,TCAMBIO,CODCLI,NUMVEN,PVF,IGV,FECHA,CANT,DCTO01,LINVEN,VALCOS,LTECNI)
    	SELECT * FROM OPENROWSET(''VFPOLEDB'',''\\SERVIDORDB\f\Sistemas\DBFS\'+@ANO_STRING+'\FACTU\IPS\SWMO0202.DBF'';'''';'''',
    	''SELECT MES,SERPED,NUMPED,TFACTU,DIVVEN,NUMFAC,UBICA,TIPO,CODART,COLOR,MEDIDA,LVENTA,
    	MONEDA,TCAMBIO,CODCLI,NUMVEN,PVF,IGV,FECHA,CANT,DCTO01,LINVEN,VALCOS,LTECNI FROM SWMO0202'')';
    	EXECUTE sp_executesql @SQL_STRING;
    
    	END
    	PRINT 'FEBRERO'
    	IF(@MES<=3)
    	BEGIN
    	SET @SQL_STRING = N'
    	INSERT INTO DOCUMENTO_DETALLE(MES,SERPED,NUMPED,TFACTU,DIVVEN,NUMFAC,UBICA,TIPO,CODART,COLOR,MEDIDA,LVENTA,
    	MONEDA,TCAMBIO,CODCLI,NUMVEN,PVF,IGV,FECHA,CANT,DCTO01,LINVEN,VALCOS,LTECNI)
    	SELECT * FROM OPENROWSET(''VFPOLEDB'',''\\SERVIDORDB\f\Sistemas\DBFS\'+@ANO_STRING+
    	'\FACTU\IPS\SWMO0203.DBF'';'''';'''',
    	''SELECT MES,SERPED,NUMPED,TFACTU,DIVVEN,NUMFAC,UBICA,TIPO,CODART,COLOR,MEDIDA,LVENTA,
    	MONEDA,TCAMBIO,CODCLI,NUMVEN,PVF,IGV,FECHA,CANT,DCTO01,LINVEN,VALCOS,LTECNI FROM SWMO0203'')';
    	EXECUTE sp_executesql @SQL_STRING;
    
    	END
    	PRINT 'MARZO'
    	IF(@MES<=4)
    	BEGIN
    	SET @SQL_STRING = N'
    	INSERT INTO DOCUMENTO_DETALLE(MES,SERPED,NUMPED,TFACTU,DIVVEN,NUMFAC,UBICA,TIPO,CODART,COLOR,MEDIDA,LVENTA,
    	MONEDA,TCAMBIO,CODCLI,NUMVEN,PVF,IGV,FECHA,CANT,DCTO01,LINVEN,VALCOS,LTECNI)
    	SELECT * FROM OPENROWSET(''VFPOLEDB'',''\\SERVIDORDB\f\Sistemas\DBFS\'+@ANO_STRING+
    	'\FACTU\IPS\SWMO0204.DBF'';'''';'''',
    	''SELECT MES,SERPED,NUMPED,TFACTU,DIVVEN,NUMFAC,UBICA,TIPO,CODART,COLOR,MEDIDA,LVENTA,
    	MONEDA,TCAMBIO,CODCLI,NUMVEN,PVF,IGV,FECHA,CANT,DCTO01,LINVEN,VALCOS,LTECNI FROM SWMO0204'')';
    	EXECUTE sp_executesql @SQL_STRING;
    
    	END
    	PRINT 'ABRIL'
    	IF(@MES<=5)
    	BEGIN
    	SET @SQL_STRING = N'
    	INSERT INTO DOCUMENTO_DETALLE(MES,SERPED,NUMPED,TFACTU,DIVVEN,NUMFAC,UBICA,TIPO,CODART,COLOR,MEDIDA,LVENTA,
    	MONEDA,TCAMBIO,CODCLI,NUMVEN,PVF,IGV,FECHA,CANT,DCTO01,LINVEN,VALCOS,LTECNI)
    	SELECT * FROM OPENROWSET(''VFPOLEDB'',''\\SERVIDORDB\f\Sistemas\DBFS\'+@ANO_STRING+
    	'\FACTU\IPS\SWMO0205.DBF'';'''';'''',
    	''SELECT MES,SERPED,NUMPED,TFACTU,DIVVEN,NUMFAC,UBICA,TIPO,CODART,COLOR,MEDIDA,LVENTA,
    	MONEDA,TCAMBIO,CODCLI,NUMVEN,PVF,IGV,FECHA,CANT,DCTO01,LINVEN,VALCOS,LTECNI FROM SWMO0205'')';
    	EXECUTE sp_executesql @SQL_STRING;
    
    	END
    	PRINT 'MAYO'
    	IF(@MES<=6)
    	BEGIN
    	SET @SQL_STRING = N'
    	INSERT INTO DOCUMENTO_DETALLE(MES,SERPED,NUMPED,TFACTU,DIVVEN,NUMFAC,UBICA,TIPO,CODART,COLOR,MEDIDA,LVENTA,
    	MONEDA,TCAMBIO,CODCLI,NUMVEN,PVF,IGV,FECHA,CANT,DCTO01,LINVEN,VALCOS,LTECNI)
    	SELECT * FROM OPENROWSET(''VFPOLEDB'',''\\SERVIDORDB\f\Sistemas\DBFS\'+@ANO_STRING+
    	'\FACTU\IPS\SWMO0206.DBF'';'''';'''',
    	''SELECT MES,SERPED,NUMPED,TFACTU,DIVVEN,NUMFAC,UBICA,TIPO,CODART,COLOR,MEDIDA,LVENTA,
    	MONEDA,TCAMBIO,CODCLI,NUMVEN,PVF,IGV,FECHA,CANT,DCTO01,LINVEN,VALCOS,LTECNI FROM SWMO0206'')';
    	EXECUTE sp_executesql @SQL_STRING;
    
    	END
    	PRINT 'JUNIO'
    	IF(@MES<=7)
    	BEGIN
    	SET @SQL_STRING = N'
    	INSERT INTO DOCUMENTO_DETALLE(MES,SERPED,NUMPED,TFACTU,DIVVEN,NUMFAC,UBICA,TIPO,CODART,COLOR,MEDIDA,LVENTA,
    	MONEDA,TCAMBIO,CODCLI,NUMVEN,PVF,IGV,FECHA,CANT,DCTO01,LINVEN,VALCOS,LTECNI)
    	SELECT * FROM OPENROWSET(''VFPOLEDB'',''\\SERVIDORDB\f\Sistemas\DBFS\'+@ANO_STRING+
    	'\FACTU\IPS\SWMO0207.DBF'';'''';'''',
    	''SELECT MES,SERPED,NUMPED,TFACTU,DIVVEN,NUMFAC,UBICA,TIPO,CODART,COLOR,MEDIDA,LVENTA,
    	MONEDA,TCAMBIO,CODCLI,NUMVEN,PVF,IGV,FECHA,CANT,DCTO01,LINVEN,VALCOS,LTECNI FROM SWMO0207'')';
    	EXECUTE sp_executesql @SQL_STRING;
    
    	END
    	PRINT 'JULIO'
    	IF(@MES<=8)
    	BEGIN
    	SET @SQL_STRING = N'
    	INSERT INTO DOCUMENTO_DETALLE(MES,SERPED,NUMPED,TFACTU,DIVVEN,NUMFAC,UBICA,TIPO,CODART,COLOR,MEDIDA,LVENTA,
    	MONEDA,TCAMBIO,CODCLI,NUMVEN,PVF,IGV,FECHA,CANT,DCTO01,LINVEN,VALCOS,LTECNI)
    	SELECT * FROM OPENROWSET(''VFPOLEDB'',''\\SERVIDORDB\f\Sistemas\DBFS\'+@ANO_STRING+
    	'\FACTU\IPS\SWMO0208.DBF'';'''';'''',
    	''SELECT MES,SERPED,NUMPED,TFACTU,DIVVEN,NUMFAC,UBICA,TIPO,CODART,COLOR,MEDIDA,LVENTA,
    	MONEDA,TCAMBIO,CODCLI,NUMVEN,PVF,IGV,FECHA,CANT,DCTO01,LINVEN,VALCOS,LTECNI FROM SWMO0208'')';
    	EXECUTE sp_executesql @SQL_STRING;
    
    	END
    	PRINT 'AGOSTO'
    	IF(@MES<=9)
    	BEGIN
    	SET @SQL_STRING = N'
    	INSERT INTO DOCUMENTO_DETALLE(MES,SERPED,NUMPED,TFACTU,DIVVEN,NUMFAC,UBICA,TIPO,CODART,COLOR,MEDIDA,LVENTA,
    	MONEDA,TCAMBIO,CODCLI,NUMVEN,PVF,IGV,FECHA,CANT,DCTO01,LINVEN,VALCOS,LTECNI)
    	SELECT * FROM OPENROWSET(''VFPOLEDB'',''\\SERVIDORDB\f\Sistemas\DBFS\'+@ANO_STRING+
    	'\FACTU\IPS\SWMO0209.DBF'';'''';'''',
    	''SELECT MES,SERPED,NUMPED,TFACTU,DIVVEN,NUMFAC,UBICA,TIPO,CODART,COLOR,MEDIDA,LVENTA,
    	MONEDA,TCAMBIO,CODCLI,NUMVEN,PVF,IGV,FECHA,CANT,DCTO01,LINVEN,VALCOS,LTECNI FROM SWMO0209'')';
    	EXECUTE sp_executesql @SQL_STRING;
    
    	END
    	PRINT 'SEPTIEMBRE'
    	IF(@MES<=10)
    	BEGIN
    	SET @SQL_STRING = N'
    	INSERT INTO DOCUMENTO_DETALLE(MES,SERPED,NUMPED,TFACTU,DIVVEN,NUMFAC,UBICA,TIPO,CODART,COLOR,MEDIDA,LVENTA,
    	MONEDA,TCAMBIO,CODCLI,NUMVEN,PVF,IGV,FECHA,CANT,DCTO01,LINVEN,VALCOS,LTECNI)
    	SELECT * FROM OPENROWSET(''VFPOLEDB'',''\\SERVIDORDB\f\Sistemas\DBFS\'+@ANO_STRING+
    	'\FACTU\IPS\SWMO0210.DBF'';'''';'''',
    	''SELECT MES,SERPED,NUMPED,TFACTU,DIVVEN,NUMFAC,UBICA,TIPO,CODART,COLOR,MEDIDA,LVENTA,
    	MONEDA,TCAMBIO,CODCLI,NUMVEN,PVF,IGV,FECHA,CANT,DCTO01,LINVEN,VALCOS,LTECNI FROM SWMO0210'')';
    	EXECUTE sp_executesql @SQL_STRING;
    
    	END
    	PRINT 'OCTUBRE'
    	IF(@MES<=11)
    	BEGIN
    	SET @SQL_STRING = N'
    	INSERT INTO DOCUMENTO_DETALLE(MES,SERPED,NUMPED,TFACTU,DIVVEN,NUMFAC,UBICA,TIPO,CODART,COLOR,MEDIDA,LVENTA,
    	MONEDA,TCAMBIO,CODCLI,NUMVEN,PVF,IGV,FECHA,CANT,DCTO01,LINVEN,VALCOS,LTECNI)
    	SELECT * FROM OPENROWSET(''VFPOLEDB'',''\\SERVIDORDB\f\Sistemas\DBFS\'+@ANO_STRING+
    	'\FACTU\IPS\SWMO0211.DBF'';'''';'''',
    	''SELECT MES,SERPED,NUMPED,TFACTU,DIVVEN,NUMFAC,UBICA,TIPO,CODART,COLOR,MEDIDA,LVENTA,
    	MONEDA,TCAMBIO,CODCLI,NUMVEN,PVF,IGV,FECHA,CANT,DCTO01,LINVEN,VALCOS,LTECNI FROM SWMO0211'')';
    	EXECUTE sp_executesql @SQL_STRING;
    
    	END
    	PRINT 'NOVIEMBRE'
    	IF(@MES<=12)
    	BEGIN
    	SET @SQL_STRING = N'
    	INSERT INTO DOCUMENTO_DETALLE(MES,SERPED,NUMPED,TFACTU,DIVVEN,NUMFAC,UBICA,TIPO,CODART,COLOR,MEDIDA,LVENTA,
    	MONEDA,TCAMBIO,CODCLI,NUMVEN,PVF,IGV,FECHA,CANT,DCTO01,LINVEN,VALCOS,LTECNI)
    	SELECT * FROM OPENROWSET(''VFPOLEDB'',''\\SERVIDORDB\f\Sistemas\DBFS\'+@ANO_STRING+
    	'\FACTU\IPS\SWMO0212.DBF'';'''';'''',
    	''SELECT MES,SERPED,NUMPED,TFACTU,DIVVEN,NUMFAC,UBICA,TIPO,CODART,COLOR,MEDIDA,LVENTA,
    	MONEDA,TCAMBIO,CODCLI,NUMVEN,PVF,IGV,FECHA,CANT,DCTO01,LINVEN,VALCOS,LTECNI FROM SWMO0212'')';
    	EXECUTE sp_executesql @SQL_STRING;
    	PRINT 'DICIEMBRE'
    
    	END
    
    	UPDATE DOCUMENTO_DETALLE SET TCAMBIO=1 WHERE TCAMBIO=0
    	UPDATE DOCUMENTO_DETALLE SET TFACTU='' WHERE TFACTU IS NULL
    	UPDATE DOCUMENTO_DETALLE SET COLOR='9999' WHERE COLOR IS NULL
    	--UPDATE MOVIMIENTO_ALMACEN SET COLOR='9999' WHERE COLOR IS NULL
    	
    	UPDATE MOVIMIENTO_INSUMO SET CANTIDAD = CANTIDAD * -1
    	WHERE TABLA = 'TBL2'
    
    	UPDATE MOVIMIENTO_INSUMO SET CANTIDAD = CANTIDAD * -1
    	WHERE TABLA = 'TBL1' AND TIP_OPE > 200;
    	--PRINT 'ACTULIZO'
    
    
    
    	EXEC SP_IMPORTAR_INFORMACION_MITINCI @ANO_STRING,@MES
    	PRINT 'DATOS MITINCI'
    
    	SET NOCOUNT OFF
    	
    	
    
    COMMIT TRANSACTION
    
    	SELECT DATO =1, MENSAJE='Se importó los datos correctamente'
    
    	EXEC sp_configure 'Ad Hoc Distributed Queries', 0
    	reconfigure
    	EXEC sp_configure 'show advanced options', 0
    	reconfigure
    
    	PRINT 'TRANSACCION COMPLETA'
    END TRY
    BEGIN CATCH
    ROLLBACK TRANSACTION
    	EXEC sp_configure 'Ad Hoc Distributed Queries', 0
    	reconfigure
    	EXEC sp_configure 'show advanced options', 0
    	reconfigure
    
    	PRINT 'TRANSACCION INCOMPLETA'
    
    	SELECT DATO=0,MENSAJE=ERROR_MESSAGE() 
    END  CATCH
    No sé si el error está en el procedimiento o en las tablas dbf de donde intenta jalar la data.
    Ejecuto el SP en el depurador poniendo un punto de interrupción en el EXEC de ésta manera:
    USE [SUNAT_MITINCI]
    GO
    
    DECLARE	@return_value int
    
    EXEC	@return_value = [dbo].[SP_IMPORTAR_DATOS]
    		@ANIO = 2016,
    		@MES = 8
    
    SELECT	'Return Value' = @return_value
    
    GO
    

    Cuando ejecuta el EXEC sp_configure (línea 20)  me sale el siguiente mensaje: 

    No se puede administrar. Operación no válida

    Le doy click en aceptar, continúo y en todas las lineas EXECUTE sp_executesql @SQL_STRING me sale el siguiente mensaje:

    Referencia a objeto no establecida como instancia de un objeto

    Como les comento soy nuevo con el SQL Server por lo que he tratado de ser lo más explicito posible. Ojalá alguien pueda ayudarme con este tema. Saludos Cordiales.

    miércoles, 5 de octubre de 2016 13:58

Respuestas

  • con ese montón de líneas de código es difícil saber que puede pasar o no pasar

    Te recomendaría que fuera del procedimiento probaras si esto funciona

    SELECT * FROM OPENROWSET(''VFPOLEDB'',''\\SERVIDORDB\f\Sistemas\DBFS\'+@ANO_STRING+'\FACTU\IPS\CABHOJA.DBF'';'''';'''', ''SELECT * FROM CABHOJA'')';

    sustituye @ano_string por algún valor válido, por ejemplo 2015,

    SELECT * FROM OPENROWSET(''VFPOLEDB'',''\\SERVIDORDB\f\Sistemas\DBFS\2015\FACTU\IPS\CABHOJA.DBF'';'''';'''', ''SELECT * FROM CABHOJA'')';

    recuerda que el servidor es el que tiene que tener el driver instalado para poder leer esas tablas.


    Comparte lo que sepas, aprende lo que no sepas (FGG)
    portalSQL
    El rincón del DBA

    miércoles, 5 de octubre de 2016 14:47
    Moderador