Welcome to Sign in | Help
in Search

executa dts dar schimba automat sursa - SQL Server 2005

Last post 12-11-2008, 4:53 PM by Alex. 20 replies.
Page 1 of 2 (21 items)   1 2 Next >
Sort Posts: Previous Next
  •  12-08-2008, 6:25 PM 6334

    executa dts dar schimba automat sursa - SQL Server 2005

    Salut, am si eu o problema

    am migrat unul din servere de la sql server 2000 la 2005...pana aici totul bine si frumos.

    pe 2000 aveam un DTS care importa din fisiere .dbf intr-o tabela in SQL Server

    am importat DTS-urile in SQL Server 2005

    Cum functiona inainte: unul din colegi intra de pe statia lui locala cu Enterprise Manager si edita acest DTS mai precis schimba sursa (fisierul .dbf) si executa acest DTS

    in momentul de fata nu vreau sa-i mai instalez Management Studio respectiv SQL Server 2000 DTS Designer Components ca sa poata face acelasi lucru si pe 2005.

    ce solutie exista? pot folosi cumva dtsrun si sa specific executa acest DTS dar schimba sursa?

    multumesc.

    alex.

  •  12-08-2008, 8:31 PM 6335 in reply to 6334

    Re: executa dts dar schimba automat sursa - SQL Server 2005

    Sintaxa de la DTSRUN este:
    C:\Documents and Settings\PestePrajit>dtsrun
    Usage:  dtsrun /option [value] [/option [value]] ...
    Options ('/?' shows this screen; '-' May be substituted for '/'):

      Package retrieval:
        /~S Server Name
        /~U User Name
        /~P Password
        /E <Use trusted connection instead of /U /P>
        /~N Package Name
        /~M Package Password
        /~G Package Guid String
        /~V Package Version Guid String
        /~F Structured Storage UNC filename (overwritten if /S also specified)
        /~R Repository Database Name <uses default if blank; loads package from repository datab

      Package operation (overrides stored Package settings):
        /~A Global Variable Name:typeid=Value <may quote entire string (including name:typeid)>

    unde

    /A global_variable_name:typeid=value

    Specifies a package global variable, where typeid = type identifier for the data type of the global variable. The entire argument string can be quoted. This argument can be repeated to specify multiple global variables. See the Remarks section for the different available type identifiers available with global variables.

    To set global variables with this command switch, you must have either Owner permission for the package or the package must have been saved without DTS password protection enabled. If you do not have Owner permission, you can specify global variables, but the values used will be those set in the package, not those specified with the /A command switch.


    şi

    The table shows the global variable data types and their IDs.

    Data type Type ID
    Integer (small) 2
    Integer 3
    Real (4-byte) 4
    Real (8-byte) 5
    Currency 6
    Date 7
    String 8
    Boolean 11
    Decimal 14
    Integer (1-byte) 16
    Unsigned int (1-byte) 17
    Unsigned int (2-byte) 18
    Unsigned int (4-byte) 19
    Integer (8-byte) 20
    Unsigned int (8-byte) 21
    Int 22
    Unsigned int 23
    HRESULT 25
    Pointer 26
    LPSTR 30
    LPWSTR 31

  •  12-08-2008, 11:18 PM 6336 in reply to 6335

    Re: executa dts dar schimba automat sursa - SQL Server 2005

    nu reusesc :(

    DTS-ul meu este f simplu:

    are o conexiune dBase5 (cu care ma leg la folderul in care stau fisierele .dbf), are o conexiune MS OLE DB provider for SQL Server(unde fac legatura catre db-ul meu de pe server) si un Transform Data Task (unde ii dau sursa si destinatia, destinatia ramane mereu la fel, aceeasi tabela doar sursa se schimba, folserul respectiv avand mai multe fisiere .dbf care trebuiesc importate)

    am reusit cu dtsrunui sa-mi generez "scriptul" care imi executa acest DTS, singura problema e ca nu stiu cum ii mai pot da un parametru care sa-mi defineasca sursa, sa o modifice?

    DTSRun /S "LAPTOPDIO\SQL2000" /U "sa" /P "password" /N "DBTest" /G "{50B66940-C281-47DF-8619-FF710E7DCDA1}" /W "0"

    multumesc.

    alex.

  •  12-09-2008, 12:03 AM 6337 in reply to 6336

    Re: executa dts dar schimba automat sursa - SQL Server 2005

    Poti sa rescrii pachetul pentru SSIS?
  •  12-09-2008, 12:37 AM 6338 in reply to 6337

    Re: executa dts dar schimba automat sursa - SQL Server 2005

    da, pot

    alex.

  •  12-09-2008, 7:55 AM 6339 in reply to 6335

    Re: executa dts dar schimba automat sursa - SQL Server 2005

    B_gd_n[ ]Sahlean:
    Sintaxa de la DTSRUN este:
    C:\Documents and Settings\PestePrajit>dtsrun
    Usage:  dtsrun /option [value] [/option [value]] ...
    Options ('/?' shows this screen; '-' May be substituted for '/'):

      Package retrieval:
        /~S Server Name
        /~U User Name
        /~P Password
        /E <Use trusted connection instead of /U /P>
        /~N Package Name
        /~M Package Password
        /~G Package Guid String
        /~V Package Version Guid String
        /~F Structured Storage UNC filename (overwritten if /S also specified)
        /~R Repository Database Name <uses default if blank; loads package from repository datab

      Package operation (overrides stored Package settings):
        /~A Global Variable Name:typeid=Value <may quote entire string (including name:typeid)>

    unde

    /A global_variable_name:typeid=value

    Specifies a package global variable, where typeid = type identifier for the data type of the global variable. The entire argument string can be quoted. This argument can be repeated to specify multiple global variables. See the Remarks section for the different available type identifiers available with global variables.

    To set global variables with this command switch, you must have either Owner permission for the package or the package must have been saved without DTS password protection enabled. If you do not have Owner permission, you can specify global variables, but the values used will be those set in the package, not those specified with the /A command switch.


    şi

    The table shows the global variable data types and their IDs.

    Data type Type ID
    Integer (small) 2
    Integer 3
    Real (4-byte) 4
    Real (8-byte) 5
    Currency 6
    Date 7
    String 8
    Boolean 11
    Decimal 14
    Integer (1-byte) 16
    Unsigned int (1-byte) 17
    Unsigned int (2-byte) 18
    Unsigned int (4-byte) 19
    Integer (8-byte) 20
    Unsigned int (8-byte) 21
    Int 22
    Unsigned int 23
    HRESULT 25
    Pointer 26
    LPSTR 30
    LPWSTR 31


    Exista si DTSUI mie personal mi se pare mai simplu de folosit


    Secolul XXI ori va fi religios ori nu va fi deloc
  •  12-09-2008, 12:02 PM 6342 in reply to 6339

    Re: executa dts dar schimba automat sursa - SQL Server 2005

    poti te rog sa-mi explici mai mult despre acest dtsui....cum m-ar ajuta?

    multumesc.

    alex.

  •  12-09-2008, 3:53 PM 6354 in reply to 6342

    Re: executa dts dar schimba automat sursa - SQL Server 2005

    Sincer nu prea folosesc SSIS.Am folosit demult.Daca ai instalat BI Studio ar trebuie sa ai instalat si toolul asta dtsui.Mai exact da click dublu pe pacjhetul dtsx si ar trebui sa se lanseze auto


    Secolul XXI ori va fi religios ori nu va fi deloc
  •  12-10-2008, 5:26 PM 6361 in reply to 6354

    Re: executa dts dar schimba automat sursa - SQL Server 2005

    pana la urma incerc sa fac apeland o procedura stocata:

    CREATE PROCEDURE [dbo].[Insert_DBF]

    ( @Fisier varchar(10))

    AS

    DECLARE @SqlToRun NVARCHAR(MAX)

    SET @SqlToRun = N'INSERT INTO TableTest

    (contract

    ,titular

    ,data_incas

    ,nr_rata

    ,data_scad

    ,total

    ,anuitate

    ,rata

    ,dobinda

    ,penaliz

    ,bon

    ,avans

    ,rezerva

    ,restanta

    ,integral)

    SELECT

    convert(varchar(20),convert(numeric(26,0),contract))

    ,titular

    ,data_incas

    ,nr_rata

    ,data_scad

    ,total

    ,anuitate

    ,rata

    ,dobinda

    ,penaliz

    ,bon

    ,avans

    ,rezerva

    ,restanta

    ,integral

    FROM OPENROWSET(

    ''MSDASQL'',

    ''Driver={Microsoft dBase Driver (*.dbf)};DBQ=C:\TMP\'',

    ''SELECT * FROM ' + @Fisier + ''')'

    exec (@SqlToRun)

    go

    si o execut astfel:

    exec Insert_DBF_to_CREDISSON_PMT 'R0680507'

    la mine local merge f bine fara nici o problema dar cand rulez pe live

    primesc eroarea:

    Msg 7399, Level 16, State 1, Line 1

    The OLE DB provider "MSDASQL" for linked server "(null)" reported an error. The provider did not give any information about the error.

    Msg 7303, Level 16, State 1, Line 1

    Cannot initialize the data source object of OLE DB provider "MSDASQL" for linked server "(null)".

    chiar nu-mi dau seama de la ce poate fi,vreun sfat?

    multumesc.

    alex.

  •  12-10-2008, 5:51 PM 6362 in reply to 6361

    Re: executa dts dar schimba automat sursa - SQL Server 2005

    si am mai gasit si linkul asta

    http://education.sqlfarms.com/education/ShowPost.aspx?PostID=1771

    prin care cu ajutorul lui xp_cmdshell si WHILE pot citi/importa toate dbf-urile dintr-un folder

    alex.

  •  12-10-2008, 6:54 PM 6364 in reply to 6362

    Re: executa dts dar schimba automat sursa - SQL Server 2005

    am incercat si facand un system dns file catre folderul respectiv si apoi linked server OLE DB > ODBC

    si tot nu merge

    cand rulez:

    SELECT * FROM OPENQUERY(LinkS,'SELECT * FROM R0680507')

    primesc eroarea

    Cannot initialize the data source object of OLE DB provider "MSDASQL" for linked server "LinkS".

    chiar nu inteleg ce nu-i place

    alex.

     

  •  12-10-2008, 7:23 PM 6365 in reply to 6364

    Re: executa dts dar schimba automat sursa - SQL Server 2005

  •  12-10-2008, 10:21 PM 6369 in reply to 6365

    Re: executa dts dar schimba automat sursa - SQL Server 2005

    O alta solutie ar mai fi scrierea unui programel in ce limbaj vrei care sa citeasca datele din dbf-uri si sa le verse in SQL Server (cel putin eu asta o sa fac pentru importul unor mdb-uri in lunile urmatoare)
  •  12-10-2008, 11:51 PM 6370 in reply to 6365

    Re: executa dts dar schimba automat sursa - SQL Server 2005

    cu dts sau ssis in 2005 am incercat si merge f bine, singura problema este faptul ca primesc zilnic 5,6 sau 7 dbf-uri care trebuiesc importate si mereu trebuie sa modific dts/ssis ca sa schimb fisierul si sa-l import/rulez package-ul

    eu incerc sa gasesc o solutie sa nu mai fie nevoie sa fac lucrul asta. ce vreau eu sa fac este sa:

    1.creez o procedura care sa aiba ca parametru numele fisierului (care este facuta merge la mine local dar nu si pe server, acolo cand incerc sa execut primesc eroarea de la postul sau cum se cheama 6361, ceva de genul ca si cum nu as vedea folderul respectiv sau nu as avea acces la el, nu-mi vede fisierul)

    2.folosind :

    declare @var varchar(50)

    set @var = 'dir /B C:\TMP'

    exec sp_cmdshell @var

    sa incarc toate fisierele dbf din folderul respectiv

    3. si apoi sa pun intr-un WHILE sa-mi execute procedura de la pct. 1

    4. si apoi totul pus intr-un job care sa ruleze automat seara dupa ce cu siguranta au fost puse fisierele respective dbf-urile in folderul respectiv (si apoi ma mai gandesc si la ceva ca dupa import sa dispara fisierele importate din folderul respectiv, dar asta e cu totul alta problema si mai e mult pana acolo deci momentan iese din discutie)

    (la partea cu sa rulez dts-ul cu o variabila care sa fie sursa dintr-o linie de comanda cu dtsrun a picat ca nu am gasit nimic sa ma ajute pe net, ma refer la ce e scris la postul cu nr. 6336 )

    deci in momentul de fata problema mea este de ce primesc eroarea:

    Msg 7399, Level 16, State 1, Line 1

    The OLE DB provider "MSDASQL" for linked server "(null)" reported an error. The provider did not give any information about the error.

    Msg 7303, Level 16, State 1, Line 1

    Cannot initialize the data source object of OLE DB provider "MSDASQL" for linked server "(null)".

     

    cand pe masina de test sau a mea locala totul merge struna, ce-mi lipseste de pe masina live?

    multumesc.

    alex.

  •  12-11-2008, 7:53 AM 6374 in reply to 6336

    Re: executa dts dar schimba automat sursa - SQL Server 2005

    Alex:
    ...

    singura problema e ca nu stiu cum ii mai pot da un parametru care sa-mi defineasca sursa, sa o modifice?

    DTSRun /S "LAPTOPDIO\SQL2000" /U "sa" /P "password" /N "DBTest" /G "{50B66940-C281-47DF-8619-FF710E7DCDA1}" /W "0"

    multumesc.

    alex.


    @alex: sunt variabile globale şi nu parametri.

    Variabilele globale din pachetul DTS le definesti cu ajutorul Package Properties şi alegi pagina Global Var (cred): gId INTEGER 0 şi gDen STRING (de exemplu).

    Apoi foloseşti un Execute SQL Task unde poti să defineşti o interogare SQL cu parametrii indicaţi prin ?
    INSERT INTO tabela (Camp1, Camp2)
    VALUES (?,?)
    şi asocizei parametrii interogării SQL cu variabilele globale folosind opţiunea Parameters din Execute SQL Task.

    Obs: Primul camp este de tip INT/INTEGER (typeid 3) şi al doilea camp este de tip No[VAR]CHAR/STRING (typeid 8).

    Execuţia pachetului se poate realiza astfel:
    dtsrun /S serverSQL /E /N pachetDTS /A gId:3=123 /A gDen:8="ABC"

    -------------------------------------------------------------------------------

    În legătură cu eroarea:
    "The OLE DB provider "MSDASQL" for linked server "(null)" reported an error."
    încearcă să foloseşti alte DRIVERe ODBC pentru a te conecta la fişierele DBF: Microsoft Visual FoxPro driver de exemplu.

    Eventual ... reinstalează MDAC.
Page 1 of 2 (21 items)   1 2 Next >
View as RSS news feed in XML
Powered by Community Server (Commercial Edition), by Telligent Systems