Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MS SQL Server
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-10-2006
Avatar de villegasmajano
villegasmajano villegasmajano is offline
Miembro
 
Registrado: may 2006
Ubicación: El Salvador, Centroamerica
Posts: 11
Poder: 0
villegasmajano Va por buen camino
Smile DTS manejados desde Delphi

Hola amigos, tengo un pequeño inconveniente al hacer uso de los recursos de SQL Server 2000, la empresa para la cual trabajo tiene aproximadamente 50 tiendas en todo mi pais(el salvador)y desde alli me envian un archivo de texto para alimentar una base de datos (sistema programado en Delphi 7 y base de datos SQL Server 2000) para subir los archivos utilizo el Data Transformation Service de SQL Server, pero tengo que crear un "paso" de datos por cada archivo de texto recibido en el DTS, como puedo hacer en SQL para que el paso se mantenga intacto y solo le mande de parametro el nombre de los archivos que en mi caso son ej: "000001.txt", "000012", etc.
Cabe mencionar que todos los archivos poseen la misma estructura y son concordantes en la base de datos. Ademas el proceso no me da ningun problema, pero cada vez que crean una nueva tienda tengo que crear un paso en el DTS del Servidor SQL. Lo que necesito es mandarle de parametro al DTS el nombre del archivo.

Espero me puedan ayudar!!!!
__________________
Alexander Villegas Majano
Analisis y Desarrollo de Software
Distribuciones Diversas, El Salvador, Centroamerica.

Responder Con Cita
  #2  
Antiguo 06-10-2006
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Hilo movido del foro de SQL al foro de MS SQL Server, dado que se trata de ese motor específico.

Saludos.
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #3  
Antiguo 10-10-2006
Avatar de villegasmajano
villegasmajano villegasmajano is offline
Miembro
 
Registrado: may 2006
Ubicación: El Salvador, Centroamerica
Posts: 11
Poder: 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
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
ANN: AnyNET-Delphi: Herramienta para generar codigo fuente Delphi desde :NET mamcx Noticias 7 21-05-2007 02:12:36
FAX desde Delphi CoCaInE Varios 3 11-07-2006 09:07:08
Rapido con Delphi, y Lento desde fuera de delphi JoseQ Varios 0 08-09-2005 10:54:48
Ejecutar los .exe desde delphi Javier_A OOP 2 28-01-2004 15:10:24
pdf desde delphi, con xsl seduerey Varios 4 18-06-2003 10:44:48


La franja horaria es GMT +2. Ahora son las 10:35:04.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi