posts - 54,  comments - 129,  trackbacks - 2

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


 

posted on 2007-02-08 08:33 Mint 阅读(374) 评论(3)  编辑 收藏 所属分类: ASPSQL Server

FeedBack:
2007-03-27 16:33 | 出错啊! [未注册用户]
dtsname:TPBM_export_to_excel
usrname:read
servername:cnsvw3786634
DTSSQLStgFlag_Default2:0

Package Failed
Package 除去表 BM_total 步骤 failed.
Package 创建表 BM_total 步骤 failed.
Package Copy Data from BM_total to BM_total 步骤 failed

请回复!j0andj@126.com
  回复  引用    
#2楼 [楼主]
2007-03-28 11:49 | Mint      
2007-03-28 13:47 | gongsh [未注册用户]
看过了,好像没什么帮助!我总觉得不是程序问题,可能是要在windows里注册一个什么东东,你一般啥时上MSN,在线聊,谢谢!
  回复  引用    

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      


相关链接:
 
<2007年2月>
28293031123
45678910
11121314151617
18192021222324
25262728123
45678910

碧海青山邀彩霞
红云赤涛嗅万花
胸空意荡何归处
宇宏宙阔是我家
周公赤壁小乔初嫁
诸葛东风陈酒香茶
荆棘小路何所至
通途亦从足下发

与我联系

搜索

 

常用链接

留言簿(12)

我参与的团队

随笔分类(80)

随笔档案(53)

文章分类(56)

相册

收藏夹(29)

Rainbow

最新随笔

积分与排名

  • 积分 - 44177
  • 排名 - 1001

最新评论

阅读排行榜

评论排行榜