DBCommand Object in ADO.NET: जिस तरह से ADO.NET Framework में विभिन्न .NET Data Providers के Implementations के बीच कुछ Commonality होती है, उसी तरह से Command Object पर भी Commonality होती है। यानी जिस तरह से Connection Class को System.Data.Common.DbConnection Class से Inherit करना होता है, ठीक उसी तरह से Command Class को System.Data.Common.DbCommand Class से Inherit करना होता है, जबकि स्वयं System.Data.Common.DbCommand Class में IDbCommand Interface को Implement किया गया है।
अत: Microsoft SQL Server Specific Command Class, जो कि SqlClient Namespace में Exist है, DbCommand Class से Inherited है। इसी तरह से Oracle Server Specific Command Class, जो कि OracleClient Namespace में Exist है, भी DbCommand Class से Inherited है। इसीलिए इन दोनों ही Classes में समान Behavior व Commonality Exist है।
चूंकि किसी भी Command को Execute होने के लिए हमेंशा किसी न किसी Connection Object की जरूरत होती है, इस कारण से DbCommand Class में Connection नाम की एक Property भी Exist है, जिसमें Specified Object का DbConnection Type का होना भी जरूरी होता है और क्योंकि SqlConnection Class, DbConnection Class से Inherited है तथा SqlCommand Class, DbCommand Class से Inherited है, इसलिए हम SqlConnection Object को SqlCommand.Connection Property में Specify कर सकते हैं।
इसी तरह से यदि Command Object के माध्यम से किसी Transaction को Execute करना हो, तो DbCommand Object में Transaction नाम की भी एक Property होती है, जो कि DbTransaction Type की Property है।
DbTransaction Class एक Base Class है, जिसमें IDbTransaction नाम के Interface को Implement किया गया है। जिसकी वजह से हमें विभिन्न .NET Data Providers के Transaction Implementation में Common Methods को Define करना होता है। परिणामस्वरूप हमें विभिन्न प्रकार के Data Sources के लिए Common Methods व Properties को Use करने की सुविधा प्राप्त हो जाती है। इसलिए हम OracleTransaction को OracleCommand.Transaction Property में Specify कर सकते हैं, जो कि DbTransaction को में Inherit करता है। इस Implementation को हम निम्न चित्र द्वारा ज्यादा बेहतर तरीके से समझ सकते हैं:
इस चित्र में हम जो एक और बात Note कर सकते हैं, वह ये है कि DbConnection Class की तरह ही DbCommand Class भी System.ComponentModel.Component Class से Inherited है, जिसकी वजह से हम Visual Studio में इस Command Object को Visually देख सकते हैं।
सामान्यत: Commands को Generic Fashion में लिखा जाता है। यानी Commands को इस तरह से लिखा जाता है कि हम एक ही Command Object को अलग-अलग तरह की जरूरतों को पूरा करने के लिए Reuse किया जा सके।
उदाहरण के लिए यदि किसी Command को किसी एक Customer की Information Retrieve करने के लिए लिखा गया है, तो अलग-अलग Parameters Pass करके उसी Command को अलग-अलग Customers की Information प्राप्त करने के लिए Reuse किया जा सके, इस बात को ध्यान में रखते हुए ही Commands Create किए जाते हैं।
अगले Article में हम ADO.NET Object Model के तीसरे महत्वपूर्ण Object Parameter के बारे में जानेंगे, जिसके माध्यम से Parameterized SQL Queries Specify करते हुए हम Underlying Data Source से Different Parameter के आधार पर Dynamically Different Resultset Generate करने की सुविधा प्राप्त करते हैं।
ये Article इस वेबसाईट पर Selling हेतु उपलब्ध EBook ADO.NET with C# in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी।
ADO.NET with C# in Hindi | Page:501 | Format: PDF