惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
T
Threatpost
Latest news
Latest news
N
News | PayPal Newsroom
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Help Net Security
Help Net Security
D
Darknet – Hacking Tools, Hacker News & Cyber Security
AI
AI
Simon Willison's Weblog
Simon Willison's Weblog
TaoSecurity Blog
TaoSecurity Blog
The Last Watchdog
The Last Watchdog
L
LINUX DO - 热门话题
Google DeepMind News
Google DeepMind News
T
Threat Research - Cisco Blogs
O
OpenAI News
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
The Exploit Database - CXSecurity.com
NISL@THU
NISL@THU
Application and Cybersecurity Blog
Application and Cybersecurity Blog
S
Securelist
小众软件
小众软件
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Martin Fowler
Martin Fowler
S
SegmentFault 最新的问题
Cisco Talos Blog
Cisco Talos Blog
云风的 BLOG
云风的 BLOG
AWS News Blog
AWS News Blog
GbyAI
GbyAI
N
News and Events Feed by Topic
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
美团技术团队
Engineering at Meta
Engineering at Meta
A
About on SuperTechFans
博客园 - 三生石上(FineUI控件)
S
Schneier on Security
博客园 - 聂微东
V2EX - 技术
V2EX - 技术
T
Troy Hunt's Blog
SecWiki News
SecWiki News
S
Secure Thoughts
B
Blog RSS Feed
Hugging Face - Blog
Hugging Face - Blog
WordPress大学
WordPress大学
腾讯CDC
H
Heimdal Security Blog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Apple Machine Learning Research
Apple Machine Learning Research
月光博客
月光博客
www.infosecurity-magazine.com
www.infosecurity-magazine.com
P
Privacy International News Feed

博客园 - Mint

I'm Back 如何分析资产负债表 - Mint - 博客园 推式与拉式生产(Push and Pull Production) {转载}PUSH-PULL集成生产管理模式在制造执行系统中的应用 ERP中财物凭证 分久必合,合久必分 理解ERP的小比喻--做大事如烹小鲜 老曹语录 关于Access2003数据集操作的一个简单问题 无法使用Outlook 2003 Out Of Office Assisant 刷机 [团队]企业内网开发集成应用--欢迎参加 关于Infopath的3种Email发送功能 自动创建计算机帐户(转微软) 使用sysprep使计算机自动添加入域 工作流的问题 Linux 的 常 用 网 络 命 令 DOS下常用网络相关命令解释 爽哉使用cnwap手机卡在笔记本上上网
Asp操作DTS进行代参数的数据导入导出
Mint · 2007-02-08 · via 博客园 - Mint

年前接了一个小项目,其中一部分是将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
%>