zoukankan      html  css  js  c++  java
  • Asp操作DTS进行代参数的数据导入导出

    年前接了一个小项目,其中一部分是将sql中的数据进行有选择的导出到一个mdb中。
    这些是完全可以通过asp得sql语句进行操作的,但是还是想把主要导出的任务交给sql server去做,asp主要是调动这个程序而已。
    想到以前做过的东西,觉得实现起来并不难,只是一个参数的问题。
    开始实现:
    先做一个dts,连接好数据源,添加一个数据导出任务,将数据导出到access中。
    然后调用asp启动dts,测试成功。
    重点问题是如何在asp中输入参数,传递到dts中。
    开始去想如何直接输入参数给dts。可以使用全局变量。
    添加一个全局变量在数据转换任务中使用带有参数的查询。
    SELECT *
    FROM fenlei
    WHERE ( fl_id < ?)
    这样可以有一个参数使用。那么参数如何赋值?
    关键是这几个语句
    Set objGlobal = objDTSPackage.GlobalVariables

    objDTSPackage.LoadFromSQLServer servername, usrname, pwd, DTSSQLStgFlag_Default2, "", "", "", dtsname
     objDTSPackage.GlobalVariables("fl_id").Value = fl_id
     objDTSPackage.Execute

    而且一定要注意,参数的赋值一定要在loadfromsqlserver之后才行。否则不成功!!!
    源代码如下:

    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <form action='rundts.asp' method=post>
    servername:<input type=text name=servername value='MINT'><br>
    usrname:<input type=text name=usrname value="sa"><br>
    pwd:<input type=password name=pwd value="sa"><br>
    conn:<input type=text name=DTSSQLStgFlag_Default2 value="0"><br>
    dtsname:<input type=text name=dtsname value="export"><br>
    id:<input type=text name=fl_id ><br>
    <input type=submit value=ok></form>


    <%
    dtsname=request.form("dtsname")
    usrname=request.form("usrname")
    servername=request.form("servername")
    pwd=request.form("pwd")
    fl_id=request.Form("fl_id")
    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.DTSGlobalVariables("fl_id").value = 10
    Set objGlobal = objDTSPackage.GlobalVariables


    objDTSPackage.LoadFromSQLServer servername, usrname, pwd, DTSSQLStgFlag_Default2, "", "", "", dtsname
     objDTSPackage.GlobalVariables("fl_id").Value = fl_id
     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
    %>


     

  • 相关阅读:
    MongoDB 2.4、备份
    MongoDB 2.3复制(副本集)
    MongoDB 2.2安全
    isMobile 一个简单的JS库,用来检测移动设备
    修改ECSHOP,支持图片云存储化(分离到专用图片服务器)
    压缩代码加速ecshop程序页面加载速度
    ecshop改造读写分离
    ecshop在nginx下实现负载均衡
    运用@media实现网页自适应中的几个关键分辨率
    在ECSHOP首页今日特价(促销商品)增加倒计时效果
  • 原文地址:https://www.cnblogs.com/Mint/p/644218.html
Copyright © 2011-2022 走看看