در بخش اول این بحث، نحوه استفاده از فایل های ضمیمه بعنوان اولین رویكرد جهت طراحی صفحات ASP ماژولار، و در بخش دوم به بررسی امكانات Server.Execute و Server.Transfer بعنوان دومین رویكرد جهت طراحی صفحات ماژولار مطرح و بررسی گردید. در این مقاله سعی می شود كه با كلاس های Vbscript آشنا شده و نحوه استفاده از آنان در طراحی صفحات ASP مورد بررسی قرار گیرد.
همزمان با ارائه نسخه 5 Vbscript توسط شركت ماكروسافت، پیاده كنندگان نرم افزار این امكان را بدست آوردند كه بتوانند از كلاس هائی نظیر آنچه در ویژوال بیسیك استفاده می گردد نیز استفاده نمایند. كلاس ها با رویكرد برنامه نویسی شئ گراء ایجاد و به طراحان صفحات ASP این امكان را خواهد داد تا قادر به استفاده از كدهای قبلی خود در سایر صفحات ASP خود باشند. كلاس ها توسط طراحان ذیربط بعنوان ماژول های جعبه سیاه بگونه ای طراحی می گردنند كه سایر استفاده كنندگان بدون نیاز به آگاهی از جزئیات مربوط به هر كلاس و بهره مندی از متدها و صفات ( ویژگی ها ) یك كلاس از توانائی آن در برنامه های خود استفاده نمایند. در ابتدا لازم است كه یك مرور سریع به برنامه نویسی شئ گراء داشته باشیم.
برنامه نویسی شئ گراء (OOP)، یك متدولوژی برنامه نویسی است كه در آن هر موجودیت با نام یك شئ ( Object) شناخته می شود. هر شئ شامل صفت ( Properties ) و متدها ( Methods ) است. یك صفت ویژگی های یك شئ را تشریح می کند در حالیكه یك متد عملیات خاصی را بر روی یك شئ انجام می دهد. شما بعنوان یك طراح صفحات ASP، به دفعات از اشیاء تعریف شده توسط دیگران استفاده كرده و می كنید. مثلا ADO یا ActiveX Data Object، چیزی بیشتر از یك مجموعه از اشیاء طراحی شده برای دستیابی به بانك های اطلاعاتی نیست. زمانیكه از ADO برای دستیابی به بانك های اطلاعاتی استفاده می شود، استفاده كننده نیاز به دانش و آگاهی لازم جهت شناخت نوع پروتكل مورد نیاز ارتباطی با یك بانك اطلاعاتی نبوده و بسادگی با استفاده از متد Open مربوط به شئ Connection با یك بانك اطلاعاتی مرتبط خواهد شد. بمنظور شناخت كامل برنامه نویسی شئ گراء، لازم است بین دو مفهوم یك شئ (Object) و یك نمونه از شئ (Instance Object) تفاوت قائل شویم. یك شئ نظیر شئ Connection، مربوط به ADO یك آیتم خیالی است. در حقیقت این شئ بصورت فیزیكی وجود نداشته و صرفا بمنزله یك قالب ( Template ) برای ایجاد یك نمونه در نظر گرفته می شود. یك نمونه (Instance)، یك هویت ( موجودیت ) فیزیكی از یك شئ است. در مثال زیر ADODB.Connection یك شئ بوده در حالیكه ObjConn نمونه ای از شئ Connection است.
Dim ObjConn
Set ObjConn=Server.CreateObject("ADODB.Connection")
ما می بایست از هر شئ نمونه ای را داشته باشیم تا بتوانیم با استفاده از فراخوانی متدهای مربوطه و یا تغییر و استفاده از صفات ذیربط، زمینه مناسب جهت استفاده عملی از آن را فراهم نمائیم. در یك مثال واقعی از ارتباط شئ / نمونه، می توان مثال معروف اتومبیل را در نظر گرفت. یك ماشین یك شئ است. این شئ یك طرح اولیه (Templeate) برای تشریح ویژگی ها و عملكردهای یك اتومبیل خواهد بود. یك "پراید" نمونه ای از یك اتومبیل است كه با بكارگیری متدها و صفات مربوطه، می توان عملیات دلخواه و از قبل تعریف شده را بر روی نمونه فوق انجام داد.
كپسوله نمودن پیچیدگی ها
برنامه نویسی شئ گراء می تواند بعنوان یك راهكار موفق جهت كپسوله نمودن پیچیدگی های مرتبط با فعالیت های خاص نیز مورد توجه جدی قرار گیرد. مثلا فرض نمائید كه بر روی وب سایت خود نیاز داشته باشیم كه یك فایل متنی را بازكرده ( Open )، تعداد خطوط آن را محاسبه ( شمارش ) و ماحصل كار را در یك فایل دیگر ثبت ( Log ) نمائیم. در چنین حالتی در صورتیكه از برنامه نویسی شئ گراء استفاده نكنیم، هر زمان كه قصد انجام مجموعه فعالیت های گفته شده را داشته باشیم، می بایست عملیات زیر را مرحله به مرحله انجام داد:
• باز نمودن یك فایل متنی خاص
• شمارش تعداد خطوط موجود در فایل
• بستن فایل متنی
• باز كردن فایل مورد نظر برای ثبت ( Logging File )
• ثبت تعداد خطوط شمارش شده
• بستن فایل Log
با اینكه مراحل فوق پیچیده بنظر نمی آیند ولی تصور كنید كه بخواهیم این عملیات را در چندین صفحه ASP انجام دهیم. در چنین حالتی می توان بسادگی تمامی مراحل فوق را كپسوله و در یك شئ خاص قرار داد. ببینیم چگونه می توان این شئ را ایجاد كرد. فرض كنید نام این شئ را LogTextFileLines در نظر بگیریم. شئ فوق صرفا دارای یك صفت با نام TextFilePath بوده كه مسیر فیزیكی فایل Log را مشخص خواهد كرد. شئ فوق همچنین دارای یك متد با نام UpdateLog بوده كه مسئول شمارش تعداد خطوط در فایل مورد نظر خواهد بود. متد فوق می تواند دارای تعریفی مشابه زیر باشد:
Function UpdateLog ( StrFileName )
StrFileName، مسیر و نام فایل متنی است كه می بایست تعداد خطوط آن شمارش و ثبت گردد. متد فوق یك ارزش منطقی (Boolean)، را برمیگرداند. مقدار فوق موفقیت آمیز بودن عملیات را نشان خواهد داد. پس از ایجاد شئ فوق، مراحل شش گانه گفته شده بسادگی انجام خواهند شد:
Dim ObjLog
Set ObjLog = New LogTextFileLines
ObjLog.LogTextFileLine = "C:\MyLogFiles\Linecount.log"
If ObjLog.UpdateLog( "C:\MyTextFiles\Test.Txt") Then
Response.Write("C:\MyTextFiles\Test.txt was logged successfully")
Else
Response.Write("There are an error when attemping to log C:\MyTextFiles\Test.Txt"
End If
همانطور كه مشاهده می شود، استفاده از شئ فوق تمام پردازش روی فایل را بصورت یك جعبه سیاه در آورده است. پس از اصول اولیه فوق، در ادامه با نحوه استفاده از كلاس های Vbscript تشریح می گردد.
كلاس های Vbscript صرفا شامل یك Constractor است. یك Constractor، روتینی است كه بلافاصله پس از ایجاد یك نمونه از شئ بصورت اتوماتیك اجرا خواهد شد. متاسفانه Constractor ها در Vbscript نمی توانند پارامتری را بعنوان ورودی اخذ نمایند. در ضمن كلاس های Vbscript، توارث را نیز حمایت نمی كنند.
در زمان ایجاد یك كلاس، می بایست به این نكته توجه شود كه شما در حال تولید و ساخت ابزاری هستید كه قرار است توسط سایر طراحان مورد استفاده قرار گیرد. پیاده كنندگانی را كه برای سایر پیاده كنندگان كلاس هائی را ایجاد می كنند Class Developer و پیاده كنندگانی را كه از این كلاس ها استفاده می نمایند End Developer می گویند. كلاس هائی كه توسط Vbscript ایجاد می شود را نمی توان مانند عناصر COM، كامپایل نمود. بنابراین یك End Developer كه قصد استفاده از كلاس فوق را در صفحات ASP داشته باشد، می بایست تعریف كلاس را بهمراه كدهای ASP داشته باشد. بنابراین روش مناسب این است كه تعاریف مربوط به كلاس ها را در یك فایل متنی قرار داد و بدین ترتیب استفاده كنندگان از كلاس فوق با استفاده از SSI ( استفاده از فایل های ضمیمه ) قادر به استفاده از كلاس های فوق در صفحات ASP خود خواهند بود. پس از ایجاد یك كلاس، پیاده كنندگان كلاس ها می بایست به این نكته توجه نمایند كه اعمال هر گونه تغییر در یك كلاس می بایست بگونه ای باشد كه باعث بروز اشكال در متدها و صفات قبلی تعریف شده نگردد.
ایجاد یك كلاس
برای ایجاد یك كلاس از دستورالعمل Class كه دارای گرامری مشابه زیر است، استفاده می شود:
Class Name_Of_Class
" تعریف متدها و صفات مربوطه
End Class
رویدادهای آغاز و خاتمه
زمانیكه كلاس ها ایجاد می گردنند، دو رویداد مهم در این زمینه نقش مهمی را برعهده خواهند گرفت : رویداد مقداردهی اولیه (Initilize) و رویداد خاتمه (Terminate). رویداد مقداردهی اولیه زمانیكه توسط دستور New یك نمونه یا مصداق از كلاسی ایجاد می گردد، فعال خواهد شد.
مثال ۱- دستورات زیر یك نمونه از كلاسی با نام SomeObject را ایجاد می كنند.
Dim ObjSomeObjectInstance
Set ObjSomeObjectInstance = New SomeObject
رویداد خاتمه زمانیكه به حیات نمونه ای از یك شئ خاتمه داده می شود، فعال خواهد شد. حیات نمونه ای از كلاس یا با استفاده از عبارتی نظیر ObjSomeObjectInstance = Nothing با صراحت اعلان می گردد و یا زمانیكه از حوزه ای كه شئ را تعریف كرده ایم، خارج شویم، بدین ترتیب زمینه اجرای رویداد فوق فراهم خواهد شد. رویدادهای دوگانه فوق را می توان در زمان طراحی یك كلاس، تعریف نمود. رویداد مقداردهی اولیه را برای مقداردهی اولیه صفات یك كلاس یا انجام عملیات خاص مورد نیاز برای شروع استفاده از یك كلاس می توان استفاده كرد. رویداد مقداردهی اولیه را Constractor می نامند. رویداد خاتمه را می توان جهت انجام عملیات خاصی كه مورد نیاز اتمام فعالیت یك كلاس است، استفاده كرد. رویداد فوق را Deconstractor می نامند.
مثال۲- در مثال زیر یك كلاس بهمراه رویدادهای آغاز و خاتمه تعریف شده است.
Class SomeObject
Private Sub Class_Initialize( )
End Sub
Private Sub Class_Terminate( )
End Sub
End Class
رویداد Class_Initialize زمانیكه یك نمونه از یك شئ ایجاد می گردد، بصورت اتوماتیك اجراء خواهد شد. رویداد Class_Terminate زمانیكه نمونه تعریف شده از یك شئ از بین می رود، بصورت اتوماتیك اجراء خواهد شد.
Properties , Methods , Member Variables , Member Function
از دیدگاه استفاده كننده از یك كلاس، یك كلاس شامل مجموعه ای از صفات و متدها است. صفات، متغیرهائی هستند كه پیاده كنندگان را قادر به تغییر و یا استفاده از آنان بمنظور مشخص نمودن وضعیت یك كلاس می كنند. متدها توابعی هستند كه پیاده كنندگان را قادر به انجام عملیات خاصی را بر روی یك كلاس می كنند. مثلا شئ ADODB.Connection شامل صفاتی است كه وضعیت یك نمونه از شئ ایجاد شده را تشریح خواهد كرد.( نظیر ConnectionString,ConnectionTimeOut, ) متدهائی نظیر Open , Close عملیات خاصی را در رابطه با نمونه شئ ایجاد شده، انجام خواهند داد. یك كلاس می تواند دارای صفات و یا متدهائی باشد كه یك استفاده كننده از كلاس، نمی تواند آنها را مستقیما استفاده و فعال نماید. این متغیرها و توابع مخفی، Member Variables و Member Function نامیده می شوند. بنابراین در صورتیكه یك استفاده كننده قادر باشد مستقیما تابعی را فعال نماید به آن متد و در غیراینصورت به آن Member Function می گویند. این وضعیت در رابطه با صفات نیز صدق می كند. در صورتیكه یك استفاده كننده از كلاسی قادر به صدا زدن و استفاده از یك متغیر كلاس باشد از آن با نام Property نام برده می شود، در غیر اینصورت به آن Member Variable می گویند.
عبارات Prtivate , Public
همانطور كه قبلا گفته شد، كپسوله نمودن پیچیدگی ها، یكی از اهداف برنامه نویس شئ گراء است. در این حالت جزئیات پیاده سازی از دید استفاده كنندگان یك كلاس مخفی نگه داشته می شود. Vbscript این امكان را فراهم می سازد كه بتوان در زمان طراحی یك كلاس، برخی از متدها و صفات یك شئ را از دید استفاده كنندگان آن كلاس، مخفی نگه داشت. برای ایجاد Member Function و Member Variable از واژه Private قبل از نام یك تابع و یا یك صفت استفاده می شود. یك Member Function صرفا توسط متد دیگری از كلاس مورد نظر و یا یك Member Function دیگر صدا زده می شود. یك Member Variable را می توان توسط یك متد و یا یك Member Function تغییر و استفاده نمود. با استفاده از امكانات Property Get , Property Let , Property Set نیز امكان تغییر و استفاده از این نوع متغیرها وجود خواهد داشت. برای ایجاد یك صفت و یا یك متد كافی است قبل از نام آنها از واژه Public استفاده كرد. در صورتیكه قبل از نام یك متد و یا یك صفت با صراحت نوع آنها ( Public,Private ) مشخص نگردد، بصورت پیش فرض Public در نظر گرفته خواهند شد.
مثال ۳- در مثال زیر یك كلاس ایجاد و صفات و متدهای Public و Private برای آن تعریف شده است.
Class myclass
Public Sub A_Public_Method( )
در این محل می توان متدهای Private را صدا زد.
A_Private_Method
End Sub
Public A_Public_Property
Private Sub A_Private_Method( )
...
End Sub
Private A_Private_Property
End Class
همانگونه كه در مثال فوق مشاهده می نمائید، زمانیكه از واژه های Private و Public بهمراه متغیرها استفاده می گردد، دیگر نیازی با استفاده از عبارت Dim نخواهد بود. در صورتیكه با صراحت نوع یك متغیر را مشخص ننمائیم، می بایست قبل از نام این نوع متغیرها از عبارت Dim استفاده شود. در چنین وضعیتی این نوع متغیرها بصورت Public در نظر گرفته خواهند شد.
توصیه می گردد كه همواره با صراحت نوع یك متغیر و یا یك تابع را توسط بكارگیری واژه های Private و یا Public مشخص نمود. در صورتیكه یك استفاده كننده از كلاس قصد دستیابی به متدها و صفات Private نمونه شئ myclass را در یك برنامه داشته باشد، با یك پیام خطا مواجه می گردد.
مثال ۴- در مثال زیر نحوه دستیابی به توابع و صفات Private و Public با تاكید بر شئ myclass كه در مثال ۳ تعریف شده بود، نشان داده می شود.
Dim Objmyclass
Set Objmyclass = New myclass
Objmyclass.A_Public_Method( ) "Valid Calling
Objmyclass.A_Public_Oroperty = 12 "Valid Calling
Objmyclass.A_Private_Method "Invalid Calling
Objmyclass.A_Private_Property = 120 "Invalid Calling
Dim Ivalue
"Invalid Calling Ivalue = Objmyclass,A_Private_Property
استفاده از Property Get
نمامی متغیرها در Vbscript از نوع Variant بوده و اگر یك متغیر Public را تعریف كنیم، هیچگونه كنترلی از بعد نوع محتوائی كه استفاده كننده به آن نسبت خواهد داد، وجود نخواهد داشت. مثلا فرض كنید كه صفتی با نام PhoneNumber در یك كلاس تعریف كرده باشیم، بدیهی است كه متغیر فوق قرار است شماره تلفن ها را در خود ذخیره نماید. استفاده كنندگان از كلاس فوق می توانند بسادگی یك بردار، نمونه ای از یك شئ و سایر موارد را به آن نسبت دهند. بمنظور حل مشكلاتی از این نوع یك متغیر Private در كلاس ایجاد و در ادامه متدی Public را جهت دستیابی و استفاده از این متغیر تعریف می كنیم. در Vbscript تمامی صفات را می توان بصورت Private تعریف و در صورتیكه بخواهیم استفاده كنندگان از كلاس فوق، قادر به خواندن مقدار این صفت باشند، با استفاده از عبارت Property Get در كلاس، امكان استفاده از آن را می توان فراهم كرد. عبارت فوق دارای گرامری مطابق زیر است:
[ Public | Private ] Property Get propertyName [ ( arglist) ]
"...assign the value of the private property to propertyname
End Property
مثال ۵- در مثال زیر یك صفت با نام strphonebumber تعریف شده است.
Class Information
Private StrPhoneNumber
End class
در ادامه اگر بخواهیم كه سایر استفاده كنندگان از شئ فوق، قادر به خواندن مقدار StrPhoneNumber باشند، می توانیم از عبارت Property Get مشابه زیر استفاده نمود:
Class Information
Private StrPhoneNumber
Public Property Get PhoneNumber ( )
PhoneNumber = strPhoneNumber
End Property
End class
پس از انجام عملیات فوق، سایر استفاده كنندگان از كلاس فوق می توانند با استفاده از كدهائی مشابه زیر به StrPhoneNumber دستیابی داشته باشند.
Dim Objinfo
Set objinfo = New Information
Response.Write " Phone number = " & Objinfo.PhoneNumber "Valid
Response.Write " Phone number = " & Objinfo.StrPhoneNumber "Invalid
در صورتیكه صفت برگردانده شده توسط Property Get، یك شئ باشد، می بایست از عبارت Set در زمان مقداردهی استفاده نمود. مثلا اگر StrPhoneNumber بجای یك رشته شامل یك شئ دیكشنری باشد، عبارت Property Get مورد نیاز بصورت زیر نوشته خواهد شد:
Public Property Get PhoneNumber( )
Set PhoneNumber = StrPhoneNumber
End Property
عنصر arglist مربوط به عبارت Property Get زمانی مورد استفاده قرار می گیرد كه صفت به یك پارامتر، ایندكس نیاز داشته باشد. مثلا در صورتیكه یك بردار را بعنوان یك صفت Private داشته باشیم و بخواهیم به استفاده كنندگان از كلاس فوق امكان خواندن یك المان خاص از بردار را بدهیم ، می بایست از كد مشابه زیر استفاده كرد:
Class Information
Private Iostan( )
Private sub Class_Initialize( )
ReDim Iostan(27)
Iostan(0) = "Khoozestan"
...
End Sub
Public Property Get Ostan(Index)
Ostan = Iostan(Index)
End Property
End Class
پس از ایجاد نمونه ای از شئ Information، می توان از كدهای زیر برای خواندن یك مقدار خاص از بردار Iostan، استفاده كرد.
Dim ObjInfo
Set ObjInfo = New Information
Response.write ObjInfo.Ostan( 0)
Set ObjInfo = Nothing
استفاده از Property Let
Property Get این امكان را برای استفاده كننده از یك كلاس فراهم می سازد كه بتوانند اقدام به بازیابی یك صفت Private بنمایند. Property Let، این امكان را برای استفاده كننده از یك كلاس فراهم می سازد كه بتوانند اقدام به مقداردهی اولیه یك صفت Private بنمایند. ویژگی فوق نظیر بیمه نمودن یك صفت در مقابل هر گونه حوادث احتمالی و خرابی است. اگر كلاسی بهمراه یك صفت Public و با نام StrPhoneNumber را ایجاد كرده باشیم، استفاده كنندگان از كلاس فوق قادر به مقدار دهی هر نوع ارزشی به این صفت خواهند بود. بدیهی است كه طراح كلاس فوق قصد ندارد این اجازه را به استفاده كننده از كلاس بدهند كه هر مقداری را به این صفت نسبت دهند. مقدار نسبت داده شده به صفت فوق می بایست دارای نوع و ارزش قابل قبول باشد. StrPhoneNumber می بایست دارای یك نوع داده با فرمت "#######" باشد. عبارت Property Let این امكان را فراهم خواهد ساخت كه یك نوع داده بهمراه فرمت مربوطه را تعریف و بررسی های لازم بر روی آن در زمان استفاده توسط یك استفاده كننده فراهم می گردد. گرامر عبارت فوق مشابه زیر است:
[ Public | Private ] Property Let propertyName [ ( arglist,) value]
"...Statements : Check to see if value is of the correct datatype
"...and format. If it is,assign value to the private property
End Property
جهت مقداردهی یك مقدار به صفت StrPhoneNumber می توان عبارت Property Let را مطابق زیر استفاده نمود:
Class Information
Private StrPhoneNumber
Public Property Let PhoneNumber(StrPhone)
StrPhoneNumber = StrPhone
End Property
End Class
عبارت Property Let فوق، دارای یك فرمت یا بررسی نوع داده و ارزش مربوطه در زمان اختصاص یك مقدار توسط استفاده كنندگان كلاس به StrPhoneNumber نخواهد بود. پارامتر StrPhoneNumber از عبارت Property Let مقداری را كه توسط استفاده كننده از كلاس وارد می شود در خود ذخیره خواهد كرد.
مثال ۶- در این مثال مقدار 9999999 مقدار پارامتر ورودی بوده كه به صفت PhoneNumber نسبت داده می شود.
Dim ObjInfo
Set ObjInfo = New Information
ObjInfo.PhoneNumber = "9999999"
برای بررسی فرمت كد مربوطه، می بایست تصمیم گرفت كه چه نوع فرمتی قابل قبول و چه نوع قالبی غیرپذیرش خواهد بود. مثلا در رابطه با مثال فوق فرمت یك تلفن می تواند بصورت ####### باشد و اگر استفاده كننده از این كلاس قالبی دیگر را وارد كند، قابل قبول نخواهد بود.
مثال ۷- در این مثال یك كلاس جدید Information تعریف شده است.
Class Information
Private StrPhoneNumber
Public Property Let PhoneNumber(StrPhone)
If Isobject(StrPhone) Then
Err.Raise vbobjectError + 1000 , "Information Calss","Invalid format for PhoneNumber.
Exit Property
End if
Dim ObjRegExp
Set ObjRegExp = New regexp
ObjregExp.Pattern = "^\d{7}$"
If ObjRegExp.Test(StrPhone) Then
StrPhoneNumber = StrPhone
Else
Err.Raise vbobjectError + 1000 , "Information Calss","Invalid format for PhoneNumber.
End if
Set ObjRegExp = Nothing
End Property
Public Property Get PhoneNumber( )
PhoneNumber = StrPhoneNumber
End Property
End Class
اگر استفاده كننده از كلاس، كدی مطابق زیر را اجراء نماید:
Dim ObjInfo
Set ObjInfo = New Information
ObjInfo.PhoneNumber = " This is an Invalid Phone Number "
یك پیام خطا مبنی بر عدم رعایت فرمت قابل قبول، را دریافت خواهد كرد. عبارت Property Let همچنین دارای یك arglist اختیاری نیز هست. این آرگومان می بایست با arglist عبارت متناظر در Property Get یكسان باشد ( در صورت وجود ) استفاده از Property Set كلاس ها می توانند دارای صفاتی باشند كه خود بمنزله شئ باشند. در چنین حالتی می بایست مراقبت های ویژه ای را در زمان اختصاص ( برگرداندن ) یك شئ از طریق یك Property Get انجام داد.
در Vbscript با استفاده از عبارت Property Set امكان مقداردهی یك نمونه از یك شئ به یك صفت وجود خواهد داشت. گرامر عبارت فوق بشكل زیر است:
[ Public | Private ] Property Set propertyName [ ( arglist,) reference]
" Perform any needed checks here , then use
" set ObjPrivateProperty = ProperName
End Property
قالب Property Get تقریبا مشابه Property Let است. تنها تفاوت عملیاتی بین آنها در این است كه عبارت Property Let مقادیری را كه به یك صفت نسبت می دهد از نوع شئ نخواهد بود در حالیكه Property set نمونه ای از یك شئ را كه به یك صفت Private نسبت می دهد. مثلا فرض كنید دارای كلاسی باشیم كه دارای یك صفت اختصاصی با نام ObjConn باشد، تعریف كلاس، عبارات Property Set و Property Get مطابق زیر خواهد بود.
Class MyConnectionClass
Private ObjConn
Public Property Get Connection( )
Set Connection = ObjConn
End Property
Public Property Set Connection( Objconnection)
Set ObjConn = ObjConnection
End Property
End Class
استفاده كنندگان از كلاس با استفاده Property Set مطابق زیر از كلاس فوق استفاده خواهند كرد.
Dim ObjMyClass , ObjMyRecordSet
Set ObjMyclass = New MyConnectionClass
Set ObjConnection = Server.Createobject("ADODB.Connection)
Set ObjMyclass.connection = objconnection