求教:关于存储过程的调用问题?

sgxxhsg 2003-12-08 03:39:31
我建立了一个存储过程:
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_textcopy]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[sp_textcopy]
GO

CREATE PROCEDURE sp_textcopy
@srvname varchar (30), --服务器名
@login varchar (30), --用户名
@password varchar (30), --密码
@dbname varchar (30), --数据库名
@tbname varchar (30), --表名
@colname varchar (30), --存储文件的字段名
@filename varchar (30), --要存取的文件名
@whereclause varchar (40), --条件
@direction char(1) --I 为存储到数据库,O 从数据库中读出成文件
AS
DECLARE @exec_str varchar (255)
SELECT @exec_str =
'textcopy /S ' + @srvname +
' /U ' + @login +
' /P ' + @password +
' /D ' + @dbname +
' /T ' + @tbname +
' /C ' + @colname +
' /W "' + @whereclause +
'" /F ' + @filename +
' /' + @direction
EXEC master..xp_cmdshell @exec_str
在ASP中使用ADO的Command对象调用,设置如下:
set fetch = server.CreateObject("adodb.command")
fetch.CommandType = 4
fetch.CommandText ="sp_textcopy"
fetch.ActiveConnection = session("Connstr")
set para= fetch.CreateParameter("srvname",adVarChar,adParamInput,30,"SG")
fetch.Parameters.append para
set para= fetch.CreateParamete("login",adVarChar ,adParamInput,30,"s")
fetch.Parameters.append para
set para=fetch.CreateParameter("password",adVarCharr,adParamInput,30,"1")
fetch.Parameters.append para
set para=fetch.CreateParameter("dbname",adVarChar,adParamInput,30,"AirShow")
fetch.Parameters.append para
set para=fetch.CreateParameter("tbname",adVarChar,adParamInput,100,"影像资料")
fetch.Parameters.append para
set para = fetch.CreateParameter("colname",adVarChar,adParamInput,100,"影像资料")
fetch.Parameters.append para
set para = fetch.CreateParameter("filename",adVarChar,adParamInput,30,"d:\1.avi")
fetch.Parameters.append para
set para = fetch.CreateParameter("whereclause",adVarChar,adParamInput,30,"where 影像ID=16")
fetch.Parameters.append para
set para = fetch.CreateParameter("direction",adChar,adParamInput,1,"o")
fetch.Parameters.append para
fetch.Execute
执行以后就会出现错误:在第一个Set Para语句处出现:变量或者类型不正确,或者不在可以接受的范围之内,要不就是与其他数据冲突。 请教高手:为何会出现该问题,应当如何解决?谢谢!
...全文
74 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjcxc 2003-12-08
  • 打赏
  • 举报
回复
'建议用:

'==================================================================--
'
' 用ASP实现无组件上传/下载文件
'
' 功能简介
' 将上传的文件数据保存到数据库中,可以处理表单中的多个上传文件的情况
' 适用于各种数据库,使用ADO的方法连接数据库
' 本示例中使用的是ACCESS数据库:zj.mdb
' 表:tb_img(id int(自增列),path text(255) 保存上传文件的目录
' ,fname text(250) 保存上传的文件名,img ole对象 保存上传的文件内容
' ,type text(250) 保存上传的文件类型
'
' 邹建 2003.10
'==================================================================


'==================================================================
'
' 上传文件的HTML页: zj_up.htm
'
'==================================================================
<html>
<head>
<title>文件上传保存到数据库中</title>
</head>
<body>
<form name="form1" enctype="multipart/form-data" method="post" action="zj_up.asp">
<p>
<input type="file" name="file">
<input type="submit" name="Submit" value="上传">
</p>
</form>
</body>
</html>


'==================================================================
'
' 上传文件保存到数据库的ASP页: zj_up.asp
'
'==================================================================
<%
Response.Expires=0
Function f_Bin2Str(ByVal sBin)
Dim iI, iLen, iChr, iRe
iRe = ""
If Not IsNull(sBin) Then
iLen = LenB(sBin)
For iI = 1 To iLen
iChr = MidB(sBin, iI, 1)
If AscB(iChr) > 127 Then
iRe = iRe & Chr(AscW(MidB(sBin, iI + 1, 1) & iChr))
iI = iI + 1
Else
iRe = iRe & Chr(AscB(iChr))
End If
Next
End If
f_Bin2Str = iRe
End Function
iConcStr = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False" & _
";Data Source=" & server.mappath("zj.mdb")
iSql="tb_img"
set iRe=Server.CreateObject("ADODB.Recordset")
iRe.Open iSql,iConcStr,1,3
iLen=Request.TotalBytes
sBin=Request.BinaryRead(iLen)
iCrlf1 = ChrB(13) & ChrB(10)
iCrlf2 = iCrlf1 & iCrlf1
iLen = InStrB(1, sBin, iCrlf1) - 1
iSpc = LeftB(sBin, iLen)
sBin = MidB(sBin, iLen + 34)
iPos1 = InStrB(sBin, iCrlf2) - 1
While iPos1 > 0
iStr = f_Bin2Str(LeftB(sBin, iPos1))
iPos1 = iPos1 + 5
iPos2 = InStrB(iPos1, sBin, iSpc)

iPos3 = InStr(iStr, "; filename=""") + 12
If iPos3 > 12 Then
iStr = Mid(iStr, iPos3)
iPos3 = InStr(iStr, Chr(13) & Chr(10) & "Content-Type: ") - 2
iFn = Left(iStr, iPos3)
If iFn <> "" Then
iRe.AddNew
ire("path")=left(iFn,instrrev(iFn,"\"))
iRe("fname") = mid(iFn,instrrev(iFn,"\")+1)
iRe("type") = Mid(iStr, iPos3 + 18)
iRe("img").AppendChunk MidB(sBin, iPos1, iPos2 - iPos1)
iRe.Update
End If
End If

sBin = MidB(sBin, iPos2 + iLen + 34)
iPos1 = InStrB(sBin, iCrlf2) - 1
Wend
iRe.close
set iRe=Nothing
%>

'==================================================================
'
' 下载数据的ASP页: zj_down.asp
'
'==================================================================
<%
Response.Buffer=true
Response.Clear

iConcStr = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False" & _
";Data Source=" & server.mappath("zj.mdb")
set iRe=server.createobject("adodb.recordset")
iSql="tb_img"
iRe.open iSql,iconcstr,1,1
Response.ContentType=ire("type")
Response.BinaryWrite iRe("img")

iRe.close
set iRe=Nothing
%>

zjcxc 2003-12-08
  • 打赏
  • 举报
回复
'ASP调用改为:
set fetch = server.CreateObject("adodb.command")
fetch.CommandType = 4
fetch.CommandText ="sp_textcopy"
fetch.ActiveConnection = session("Connstr")
fetch.Parameters.Refresh
fetch.Parameters.("@srvname")="SG"
fetch.Parameters.("@login")="sa"
fetch.Parameters.("@password")="1"
fetch.Parameters.("@dbname")="AirShow"
fetch.Parameters.("@tbname")"影像资料"
fetch.Parameters.("@colname")="影像资料"
fetch.Parameters.("@filename"="d:\1.avi"
fetch.Parameters.("@whereclause"="where 影像ID=16"
fetch.Parameters.("@direction"="o"
fetch.Execute
内容概要:本文介绍了一种基于双向DC-DC变换器的储能电池SOC(State of Charge,荷电状态)充放电双模式Simulink仿真模型,旨在实现对储能系统在充电和放电两种工况下的精确建模与动态控制。仿真系统结合了电力电子变换器的拓扑结构与电池等效电路模型,通过闭环控制策略实时调节充放电电流,确保电池工作在安全高效的SOC区间内。模型充分考虑了能量双向流动特性,支持能量回馈与吸收,适用于微电网、电动汽车及可再生能源系统中的能量管理场景。通过仿真可验证控制算法的有效性,优化系统动态响应与能量利用效率。; 适合人群:具备电力电子、自动控制及新能源系统基础知识,从事电气工程、自动化、能源系统等相关领域的科研人员与工程技术人员,尤其适合研究生及从事储能系统仿真与控制开发的工程师。; 使用场景及目标:①研究储能系统在微电网中的能量调度与平抑功率波动能力;②验证双向DC-DC变换器在电池充放电切换过程中的稳定性与效率;③优化基于SOC反馈的充放电控制策略,防止过充过放,延长电池寿命;④为实际储能系统控制器设计提供仿真验证平台。; 阅读建议:建议结合Simulink模型文件与控制算法说明文档同步学习,重点关注变换器控制逻辑、SOC估算模块与充放电模式切换机制,可通过调整参数进行对比仿真,深入理解系统动态特性与控制性能。
打开链接下载源码: https://pan.quark.cn/s/a4b39357ea24 在Microsoft的视窗系统中,有时我们需要确认文件的完整性与一致性,这时MD5校验和显得十分关键。MD5(Message-Digest Algorithm 5)是一种被广泛应用的哈希函数,它能够将文件数据转化为固定长度的数字性摘要,一般表现为32位的16进制数值。该种摘要对于文件内容具有独特性,即便文件内容有微小的改动,MD5数值也会发生显著变化。接下来将具体阐述在Microsoft视窗的命令行环境中如何运用`md5sum`软件来计算文件的MD5数值。1. **MD5的本质及其应用** MD5是一种哈希技术,主要应用于数据完整性验证,例如在下载文件后核实其与原始文件是否一致,或在密码存储时进行单向加密处理。尽管MD5的防护能力已无法满足高安全级别的需求,但在文件完整性验证方面仍然被广泛采用。2. **Microsoft视窗中的`md5sum`软件** 在Linux系统中,`md5sum`命令是系统自带的,而在Microsoft视窗系统中则需要额外进行安装。用户可以下载适用于Microsoft视窗的`md5sum`软件,比如GnuWin32项目提供的版本。安装完成后,`md5sum.exe`会被添加至系统的PATH环境变量中,从而可以在命令行界面中直接使用。3. **`md5sum`软件的使用方法** 在命令行提示符(通过按Win + R键,输入`cmd`后按下回车键)中,输入下列格式的指令来计算文件的MD5数值: ``` md5sum 文件路径 ``` 举例来说,若要计算名为`example.txt`的文件的MD5数值,指令应为: ``` md5sum example...

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧