Ver Mensaje Individual
  #3  
Antiguo 10-10-2006
Avatar de villegasmajano
villegasmajano villegasmajano is offline
Miembro
 
Registrado: may 2006
Ubicación: El Salvador, Centroamerica
Posts: 11
Reputación: 0
villegasmajano Va por buen camino
Problema Solucionado

ante la inminente urgencia tuve que utilizar metodos poco ortodoxos pero espero que les pueda servir si alguien tiene este problema, este ejemplo lo encontre por alli y lo customice para mis necesidades, en realidad no termine usando un dts sino un bulk copy , ami me funciono perfectamente.. aqui les dejo los stored procedure.

Código SQL [-]
CREATE procedure StProc_CargaTemporalM
@FilePath         varchar(1000),
@ArchivePath        varchar(1000), 
@FileNameMask    varchar(1000) ,
@MergeProc        varchar(128) 

AS

set nocount on
    

    
declare @FileName varchar(1000) ,
    @File         varchar(1000)
declare @cmd         varchar(2000)
    
    create table ##Import (NoHoja varchar(21),CodVendedor varchar(6),Mes int,CodJefeTienda varchar(6),CodSucursal varchar(6),Fecha datetime)
    create table #Dir (s varchar(8000))
    
    /*****************************************************************/
    -- Import file
    /*****************************************************************/
    select    @cmd = 'dir /B ' + @FilePath + @FileNameMask
    delete #Dir
    insert #Dir exec master..xp_cmdshell @cmd
    
    delete #Dir where s is null or s like '%not found%'
    while exists (select * from #Dir)
    begin
        select     @FileName = min(s) from #Dir
        select    @File = @FilePath + @FileName
        
        select     @cmd =         'bulk insert'
        select     @cmd = @cmd +     ' ##Import' 
        select     @cmd = @cmd +     ' from'
        select     @cmd = @cmd +    ' ''' + replace(@File,'"','') + ''''
        select     @cmd = @cmd +    ' with (FIELDTERMINATOR='','')'

        
        truncate table ##Import
        
        -- Importacion de Datos
        print(@cmd)
        exec (@cmd)
                
        -- Remover el archivo justos despues de ser importado
        delete    #Dir where s = @FileName
        
        exec @MergeProc
        
        
        -- Hacer backup de los archivos insertados a la DB
        select @cmd = 'move ' + @FilePath + @FileName + ' ' + @ArchivePath + @FileName
        exec master..xp_cmdshell @cmd
    end
    
    drop table ##Import
    drop table #Dir
GO

CREATE procedure StProc_CargaProduccionM

AS
    set nocount on
    
    -- Insertar Datos a la Tabla de Produccion
    insert    TblHojaControl
        (
        NoHoja,
        CodVendedor ,
        Mes ,
        CodJefeTienda,
        CodSucursal,
        Fecha
        )
    select    
        NoHoja,
        CodVendedor ,
        Mes ,
        CodJefeTienda,
        CodSucursal,
        Fecha
    from ##Import
GO

Bueno en mi caso yo inserto los datos directamente a las tablas de produccion, pero una practica sana y recomendable seria insertarlos en una tabla temporal de igual estructura que la de produccion y validar los danto antes de su insercion...
saludos!!!!
__________________
Alexander Villegas Majano
Analisis y Desarrollo de Software
Distribuciones Diversas, El Salvador, Centroamerica.

Responder Con Cita