日期:2014-05-17  浏览次数:20826 次

基础不好,问大家几个问题,希望帮忙
代码规范和局部变量的重名问题
1.如何定义
文件   Function.asp
用来打开记录集合的函数
<%
Function   OpenRs(sql,read)
Set   Rs=Server.CreateObject( "Adodb.Recordset ")
If   read=1   then
Rs.Open   sql,Conn,1,1
Else   If   read   =   0   Then
Rs.Open   Sql,Conn,1,3
End   If
End   If
End   Function
%>
在show.asp文件调用   conn.asp和function.asp
打开记录集合
show.asp文件内容:
<%dim   rs
Call     RsOpen( "Select   *   From   news ",1)%>

提示Microsoft   VBScript   运行时错误   (0x800A000D)
类型不匹配:   'RsOpen '

请问为什么会出现这种情况?


2.
在这个函数里   如何规范的写代码,保证代码的效率
参数需不需要重新定义  
如写成
<%
Function   OpenRs(sql,read)
dim   sqlTemp,readTemp,Rs
readTemp=read
sqlTemp=sql
............
End   Function
%>
3.如果在函数中出现dim   rs  
在函数外部也出现了   dim   rs  
这样会不会提示重名?  


如有参考文章   请告诉地址   谢谢




------解决方案--------------------
1、Function OpenRs() 后边使用时却写了 RsOpen( 前后不一致,当然出错
------解决方案--------------------
当open和close不成对出现的时候,代码可读性怎么样?
而且你连创建recordset对象都在函数内部,难道你还专门写一个函数把它释放掉?

一般来说
Set conn = Server.CreateObject( "ADODB.Connection ")
conn.Open ......
Set Rs=Server.CreateObject( "Adodb.Recordset ")
Rs.Open ......

Rs.Close
Set Rs = Nothing
conn.Close
Set conn = Nothing

如果你只能看到其中的一半,比如关闭释放那一半,你不感觉有点怪怪的?