再议Property Set的用法

HITS 2006-02-24 03:29:21
我的理解是可以将内建对象转换到外类来
比如在class里面建立了一个adodb.recordset对象如何在外面操作他?

注:如果可能请写一小段代码,谢谢
...全文
228 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
KimSoft 2006-02-25
  • 打赏
  • 举报
回复
Public Property Get RecordSet()
If UCase(TypeName(mrstRecordSet)) = "RECORDSET" Then
If mrstRecordSet.State = 1 Then
Set RecordSet = mrstRecordSet
End If
End If
End Property
HITS 2006-02-25
  • 打赏
  • 举报
回复
在顶!
HITS 2006-02-24
  • 打赏
  • 举报
回复
那你们还是没有说明白Set的用途阿
HITS 2006-02-24
  • 打赏
  • 举报
回复
liuxiaoyi666(MSMVP小猪妹马甲之八卦兔子):dim 和set的区别
什么意思?
KimSoft 2006-02-24
  • 打赏
  • 举报
回复
晕,你用Property Get啊,代码我就不写了。
  • 打赏
  • 举报
回复
dim 和set的区别
HITS 2006-02-24
  • 打赏
  • 举报
回复
不是吧……
那么多的ADO对象难道要一个个Property Get
天,难道Property Set不能将类里面对象转到类外面用么
那么let跟set有啥区别??这两个都是往类里面传递嘛
是是非非 2006-02-24
  • 打赏
  • 举报
回复
可以

如果只是要从外面控制类内部的ADO
有Property Get就够了
HITS 2006-02-24
  • 打赏
  • 举报
回复
ADO对象是在Class里面
要求在类外面控制ADO
KimSoft 2006-02-24
  • 打赏
  • 举报
回复
<%
Class Class1

Private mrstRecordSet

Public Property Set RecordSet(Value)
If UCase(TypeName(Value)) = "RECORDSET" Then
Set mrstRecordSet = Value
End If
End Property

Public Function IsClose
IsClose = False
If mrstRecordSet.State = 0 Then
IsClose = True
End If
End Function

End Class

'创建对象
Set cls1 = New Class1

'创建RS
Set rs = Server.CreateObject("ADODB.Recordset")

'cls1的RecordSet属性引用创建的RS
Set cls1.RecordSet = rs

'判断RS是否关闭
Response.Write cls1.IsClose
%>

应该很清楚了,楼主看看。
  • 打赏
  • 举报
回复
可以
HITS 2006-02-24
  • 打赏
  • 举报
回复
我说的是VBS的
用VB DLL,客户的服务器不支持
HITS 2006-02-24
  • 打赏
  • 举报
回复
找VBS CHM我会的,我想知道是能不能实现类里的对象传递类外
KimSoft 2006-02-24
  • 打赏
  • 举报
回复
写个VB的吧,比较明了

Test.Class1 编译成test.dll
Public Property Set RS(Value As ADODB.Recordset)
Set RS = Value
End Property

asp中调用 
set cls1 = Server.CreateObject("Test.class1")
set rs = server.createobject("ADODB.Recordset")
set rs = conn.execute(sql)
set cls1.RS = rs
.....
KimSoft 2006-02-24
  • 打赏
  • 举报
回复
Property Set 语句
在 Class 块中,声明名称、参数和代码,这些构成了将引用设置到对象的 Property 过程的主体。

[Public | Private] Property Set name(
[arglist,] reference
)
[statement]
[Exit Property]
[statement]
End Property

参数
Public

表明 Property Set 过程可以被所有脚本中的其他所有过程访问。

Private

表明 Property Set 过程只能被声明之的同一 Class 块中的其他过程访问。

name

Property Set 过程的名称;遵守标准的变量命名规则,不过该名称可以与同一个 Class 块中的 Property Get 或 Property Let 过程相同。

arglist

变量列表,代表在 Property Set 过程被调用时传递给它的参数。多个参数之间用逗号分隔开。此外,Property Set 过程将总是比它相应的 Property Get 过程多一个参数。这个多出来的参数是被赋予的对象。

reference

变量,其中包含被用于对象引用赋值的右侧的对象引用。

statement

将要在 Property Set 过程主体中执行的任何一组语句。

注意每个 Property Set 语句都必须为所定义的过程定义至少一个参数。当 Property Set 语句所定义的过程被调用时,该必需参数(在多个参数时为最后一个参数)中将为属性提供实际的对象引用。在前面的语法中,该参数被称为引用。

说明
除非使用 Public 或 Private 明确地进行指定,否则 Property Set 过程被设置为缺省的公有模式,即脚本中的其他所有过程都是可见的。在不同的过程调用时,Property Set 过程中的局部变量是不保存的。

在其他任何过程(例如Function或Property Let)中都不能够定义Property Set过程。

Exit Property 语句将导致立即从 Property Set 过程中退出。程序将继续执行调用 Property Set 过程之后的语句。Exit Property 语句的数量不受限制,可以出现在 Property Set 过程中的任何位置。

与 Function 和 Property Get 过程类似,Property Set 过程是一个单独的过程,它可以有若干参数,执行一系列的语句,还可以改变参数的值。然而,与 Function 和 Property Get 过程不同的是,函数和过程都可以返回值,而 Property Set 过程对象引用赋值(Set 语句)的左侧。
KimSoft 2006-02-24
  • 打赏
  • 举报
回复
是VB的,还是VBS的

28,406

社区成员

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

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