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"

    %>

  • 相关阅读:
    ios 数据类型转换 UIImage转换为NSData NSData转换为NSString
    iOS UI 12 block传值
    iOS UI 11 单例
    iOS UI 08 uitableview 自定义cell
    iOS UI 07 uitableviewi3
    iOS UI 07 uitableviewi2
    iOS UI 07 uitableview
    iOS UI 05 传值
    iOS UI 04 轨道和动画
    iOS UI 03 事件和手势
  • 原文地址:https://www.cnblogs.com/Mint/p/234875.html
Copyright © 2011-2022 走看看