zoukankan      html  css  js  c++  java
  • 我来操作dts olap

    新单位新任务,上一个任务就是在asp代码中操作启动dts,dts里面是对olap进行分析。老板给了asp脚本代码,可以启动dts。
    <form action='dts.asp' method=post>
    servername:<input type=text name=servername value=''><br>
    usrname:<input type=text name=usrname><br>
    pwd:<input type=password name=pwd><br>
    conn:<input type=text name=DTSSQLStgFlag_Default2><br>
    dtsname:<input type=text name=dtsname><br>
    <input type=submit value=ok></form>


    <%
    dtsname=request.form("dtsname")
    usrname=request.form("usrname")
    servername=request.form("servername")
    pwd=request.form("pwd")
    DTSSQLStgFlag_Default2=request.form("DTSSQLStgFlag_Default2")
    if dtsname="" or DTSSQLStgFlag_Default2="" or usrname="" or servername="" or pwd="" then
    response.write("error")
    response.end
    else
    response.write("dtsname:"&dtsname&"<br>")
    response.write("usrname:"&usrname&"<br>")
    response.write("servername:"&servername&"<br>")
    response.write("DTSSQLStgFlag_Default2:"&DTSSQLStgFlag_Default2&"<br>")
    dim objDTSPackage
    dim objDTSStep
    dim strResult
    dim blnSucceeded

    const DTSSQLStgFlag_Default = 0
    const DTSStepExecResult_Failure = 1

    set objDTSPackage = Server.CreateObject("DTS.Package")
    blnSucceeded = true

    objDTSPackage.LoadFromSQLServer servername, usrname, pwd, DTSSQLStgFlag_Default2, "", "", "", dtsname
    objDTSPackage.Execute

    for each objDTSStep in objDTSPackage.Steps
    if objDTSStep.ExecutionResult = DTSStepExecResult_Failure then
    strResult = strResult & "Package " & objDTSStep.Name & " failed.<br>"
    blnSucceeded = false
    else
    strResult = strResult & "Package " & objDTSStep.Name & " succeeded.<br>"
    end if
    next

    if blnSucceeded then
    Response.Write "<h1>Package Succeeded</h1>"
    else
    Response.Write "<h1>Package Failed</h1>"
    end if

    Response.Write strResult
    end if
    %>
    先自我解释一下,建立工作流最dts进行监视,如果出问题就报错。objDTSPackage.LoadFromSQLServer servername, usrname, pwd, DTSSQLStgFlag_Default2, "", "", "", dtsname
    这个市关键的调动语句,没有什么难得,只要能连接就好。关于dtssqlstgflag_default参数也是无所谓的。0和256都可以。只要验证方式向符合就好。

    理解起来并不难,但是实际操作总有点小问题。
    首先启动dts,作任何东西都可以。只要连接了sql服务器就好。但是如果进行相应的sql数据库操作,你的启动账号必须在sql中有相应的数据库操作全县。
    下面我就要把相应的dts放入我用的olap工作了。这时候问题就一大队了。
    总是报告无法廉洁。就不说什么现象了。反正正确的配置我写一下六个记录好了
    一般要有一个olap administrator管理员组。你的远程账号一定要是在这个组内如果是匿名就要用iusr等等。然后再将C:\Program Files\Microsoft Analysis Services\Bin目录分配管理组读写全县,其实说明白就是两个日志数据库的读写全县。一般这样远程用户同时可以启动连接olap在控制台上。其实从web上连接olap都是一样的进行操作。
    我的测试环境是w2k3和winxp但是我换了w2k就不行了,怎么找都不知道原因,但是老板还是坚持操作。如何是好!???亏了我查了资料有另外的解决办法虽然不是很安全,但是达到了目的,使用bat文件进行远程asp操作。赫赫。如果哪位大哥知道w2k的权限分配的解决办法,请交流一下了。小生不胜感激。


    @@echo off
     
      if [%1] == [] goto Usage
      if [%2] == [] goto Usage
      if [%3] == [] goto Usage
      if [%4] == [] goto Usage
     

      SET LOGFILE=c:\DTSRUN.LOG

      echo %TIME% Manual DTS package start run......... >> %LOGFILE%
      echo ------------------------------------------ >> %LOGFILE%

    @dtsrun /S %1 /U %2 /P %3 /N %4 >> %LOGFILE%
      if errorlevel 1 goto Error

      echo %TIME% Manual DTS package end......... >> %LOGFILE%
      echo ------------------------------------------ >> %LOGFILE%
     
      goto FINISH

      :Error
      echo ------------------------------------------- >> %LOGFILE%
      echo DTSRUN ERROR PLS CHECK LOG .........
      echo %TIME% GlobalStore Backup abnormal end. >> %LOGFILE%
     
      goto FINISH

      :Usage
      echo.
      echo Usage:crundts %1 servername %2 use_name %3 password %4 dts_name
      :FINISH
    <%

    Set FileSys = Server.CreateObject("Scripting.FileSystemObject")
    FileName = FileSys.GetTempName

    Set WShShell = Server.CreateObject("WScript.Shell")


    RetCode = WShShell.Run("d:\mint\dts\crundts.bat  tjpc014 sa sa mint2" & " " & FileName, 1, True)

    if RetCode = 0 Then

    'There were no errors

    else

    Response.write("error")

    end if


    Set TextFile = FileSys.OpenTextFile("d:\mint\dts\" & FileName & ".txt", 1)
    TextBuffer = TextFile.ReadAll

    For i = 1 to Len(TextBuffer)

    If Mid(TextBuffer,i,1) = chr(13) Then

    Response.Write("<BR>")

    else

    Response.Write(Mid(TextBuffer,i,1))

    end if

    Next

    TextFile.Close

    'FileSys.DeleteFile "d:\mint\dts\" & FileName & ".txt"

    %>

  • 相关阅读:
    js Validate
    JS
    JS 回车提交,兼容IE、火狐、Opera、Chrome、Safari……
    自动搜索 下拉单
    有符号数和无符号数间的比较.
    结构体指针在函数调用中的实例
    如何计算时间复杂度
    指针和引用的比较
    指针参数是如何传递内存的
    fread函数和fwrite函数,read,write
  • 原文地址:https://www.cnblogs.com/Mint/p/234875.html
Copyright © 2011-2022 走看看