7自从到了csdn以来,得到很多热心帮助.前些时候用asp开发系统,发现很多东东不好用,....

'=========================================================================================================================================================

public function MyTestValue(MyValues)
'将数据Valuse的所有元素的值都写在网上,以便查看从其它网页传过来的数组的值
'参数据说明:
' vaules:待检测的数组
'返回值:
' 如是没有出错返回数组的长度
' 有错返回“-1”
on error resume next
dim i,ValuesLen
ValuesLen=ubound(MyValues)
for i=0 to ValuesLen
response.write i & " " & MyValues(i) & "<br>"
next

if err.number=0 then
MyTestValue= ubound(MyValues)
else
Response.Write "<BR>MyTestValue 函数运行时发生错误:" & err.Description
MyTestValue=-1
end if
end function


public function ShowUpdateSQl(SqlStr,ConnStr,beginField,EndField,FieldArrayName,ArrayBeginNum,TableName,SqlType)
'ShowUpdateSQl函数功能:根据传入的sql语句,快速生成部分"Update"语句.
'当一条update语句中含有10个或更多的字段时,这个函数将会起到很多作用,不但可以快速后成语句,
'而且可以减少错误的发生.
'参数说明
'sqlstr: 将要查询的sql语句
'connstr: 数据库连接字符串
'beginField:在记录集中开始显示的字段位置
'EndField: 在记录集中结束显示的字段位置
'FieldArrayName:生成update语句时,存入值的数组名
'TableName:被查询的表名,之所以用这个参数是为使函数生成的update语更完整些.
'SqlType: 确定ShowUpdateSQl函数返回是update语句还是insert语句
' SqlType="update"时生成update语句,
' SqlType=其它值时生成insert语句
'调用实例
' response.write ShowUpdateSQl("select * from abc","Driver={SQL Server};uid=sa;pwd=passed;database=cthpdb;server=scb-web",1,"Max","fieldValue","abc")
'返回的结果: update abc set a='fieldValue(0)',b='fieldValue(1)',c='fieldValue(2)

on error resume next
dim conn,rs
set conn=server.CreateObject ("adodb.connection")
set rs=server.CreateObject ("adodb.recordset")
Conn.open Connstr
rs.Open sqlstr,conn,1,3
if err.number <>0 then
response.write writeinfo("<BR>ShowUpdateSQl函数运行时出现错误!<BR>错误信息:" & err.Description)
ShowUpdateSQl=err.number
exit function
end if
'----------确定如何显示字段-----------------
if not Isnumeric(beginField) or beginField<0 then
beginField=0'确保开始显示的位置在合理范围内
else
if beginField>rs.Fields.Count-2 then beginField=rs.Fields.Count-2'保证到少显示一个字段
if beginField<0 then beginField=0
end if
if not Isnumeric(EndField) then EndField=rs.Fields.Count-1
if EndField>rs.Fields.Count-1 or EndField<=beginField or EndField<0 then EndField=rs.Fields.Count-1
if not isnumeric(ArrayBeginNum) then ArrayBeginNum=0 '确定数组的下限是数字
dim i,TempSql
if UCase(trim(SqlType))="UPDATE" then
TempSql=""update " & TableName & " set "
for i=beginField to EndField
TempSql=TempSql & rs(i).name & "='" & " & FieldArrayName & "(" & ArrayBeginNum & ") & "',"
ArrayBeginNum=ArrayBeginNum+1
next
'去掉最后一个","和空格
TempSql=left(TempSql,len(TempSql)-1) & """
else
dim ValuesStr
TempSql=""Insert " & TableName & " ("
ValuesStr=" Values ("
for i=beginField to EndField
TempSql=TempSql & rs(i).name & ","
ValuesStr=ValuesStr & "'" & " & FieldArrayName & "(" & ArrayBeginNum & ")" & " & "',"
ArrayBeginNum=ArrayBeginNum+1
next
TempSql=left(TempSql,len(TempSql)-1) & ")" & ValuesStr
TempSql=left(TempSql,len(TempSql)-1) &")""
end if
if err.number=0 then
ShowUpdateSQl="<BR>" & TempSql & "<BR><font size='-1' color='#FF0000'>注意现在生的sql语句是没有"where" 子句的,<BR>这样的SQl语句及奇危险的,特别是在生成"UPData"语句时,应特别注意!!!!!</font><br>"
else
response.write "<br>" ShowUpdateSQl" 函数出错!将返回" -1 " <br>"
ShowUpdateSQl=-1
end if
rs.Close
conn.Close
set rs=nothing
set conn=nothing
Err.Clear


end function
...全文
84 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
moqijun(阿莫) 老兄真捧场:-)
moqijun 2002-09-06
  • 打赏
  • 举报
回复
收到,多谢

28,391

社区成员

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

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