مقاله در مورد ابزار های ارتباط با data base

word قابل ویرایش
31 صفحه
8700 تومان
87,000 ریال – خرید و دانلود

ابزار های ارتباط با data base

مقدمه :
برنامه هائئ که درزمینه DATA BASE کار می کنند به دو قسمت تقسیم می شوند. یک قسمت لایه بیرونی یا USER INTERFACE (برنامه ای است که معمولا با برنامه های VISUALای نوشته می شود.) قسمت دیگر خود DATABASE است که بوسیله یکی از زبانهای بانکهای اطلاعاتی (که برپایه بانکهای اطلاعاتی رابطه ای (RDBMS)

نوشته می شود. قسمت اول یاAPPLICATION به وسیله زبانVISUAL BASIC ساخته می شود که وظیفه نما یش گرافیکی, زیبایی, کنترل کاربر و ارتباط با DATA BASE را بعهده می گیرد.
اگر چه فناوری ODBC دارای اهداف بزرگ مشابهی است لیکن اجرای آن ساده نیست .بخاطر اینکه ODBCAPI برای برنامه نویسان متوسط کمی مشکل است و طوری ساخته شده است که حتی برای برنامه نویسان پیشرفته نیز ابزار پرزحمتی به حساب می آید . بر مبنای ODBC ، ADO به بوجود آمد که دسترسی به داده های زیادی را ایجاد خواهد نمود.RDO برای دسترسی به پایگاه داده از واسط ODBC استفاده می کند ، و DAO از موتور JET داخلی خود . در حالیکه ADO بجای آن از OLEDB (پایگاه داده OLE ) استفاده می کند . OLEDB شیئ ایست کاملاً جدید برای اتصال به منابع داده .می توان OLEDB را جانشین ODBC در اتصال به منابع داده دانست .طراحی داخلی OLEDB دسترسی به منابع داده غیر SQL , را نیز(به همان سهولت دسترسی به داده های SQL ) ممکن ساخته است .

در گذشته برای دسترسی به پایگاه های داده راه دور باید از API هایا درایورهای ODBC استفاده می کردیم .در اغلب موارد یافتن درایور ODBC مناسب برای منبع داده مورد نظر امکان پذیر است ، اگر چه این روش مشکلات خاص خود را دارد.در این استاندارد ، درایور ODBC باید از زبان SQL پشتیبانی کند، و داده ها نیز بصورت جدول ( متشکل از سطر و ستون ) سازمان داده شده باشند . اما در برخی موارد چنین ساختاری برای ذخیره کردن داده ها مناسب نیست ، بخصوص داده هایی که دارای ساختار سلسله مراتبی هستند ، مانند سرویس های دایرکتوری و e-mail .
برنامه هایی مثل VISUAL BASIC , DELPHI , VC++ با رابطهایی چون COM, DCOM,ACTIVE X به DATA BASE وصل می شوند.ADO‌یکی از ACTIVE X هایی است که با DATABASE ارتباط

برقرار می کند.
در این برنامه با اسافاده از Objectهای ارتباط با DataBase که در بالا توضیح داده شد به بانک اطلاعاتی SQLServer متصل شده و با استفاده از قابلیتهای شیء ADO برای وارد کردن اطلاعات حسابداری ( اسناد حسابداری ، اطلاعات حسابداری ، اطلاعات ارز ، … ) و یا برای گرفتن اطلاعات حسابداری ( ترازهای حساب ، گردش حساب ، نمایش اسناد ، …) با بانک اطلاعاتی ارتباط برقرار نمودیم.
در کنار ابزار داخلی VB برای گرفتن گزارشات و نمودارهای برنامه از برنامه CRYSTALL REPORT 9.0 ساخت شرکت آمریکایی SEGATE که دارای جلوه های زیبا و قدرت بالا برای نمایش اطلاعات برنامه است استفاده شده است

 

ابزارهای ارتباط با DataBase

۱-DCOM,COM

یک برنامه کاربردی عموما دارای یک فایل باینری است که نمی توان در ان تغییری ایجاد کرد مگر اینکه نوع جدید ان را با نوع قبلی جایگزین کرد. گونه) ویرژن( بعدی بایستی ایجاد ,خطا یابی و مجددا کامپایل شود.در این حالت مدت زمان ساخت و توسعه برنامه های کاربردی افزایش پید

ا می کند. می توانیم برنامه را به چندین جزء منطق به نام OOAD (OBJECT-ORIENTED تقسیم ( ANALYSIST AND DESIGN کنیم. برای مثال می توانیم یک برنامه ساده ویرایشگر را به چندین قسمت منطقی تقسیم کنیم ( ناحیه متن، میله ابزار،…)سپس می توانیم درباره هرقسمت بصورت مستقل فکر و تصمیم گیری کرده و ارتباط هر قسمت با سایر قسمتها را مشخص نماییم.هر قسمت(جزء) را میتوانیم در برنامه ای که به آن نیاز دارد قرار داد. نرم افزارهایی که با ترکیبی از اجزاء ساخته شده اند COMPONENT WARE نامیده می شوند.COM در سطر بانیری قرار دارد و بر این نکته دلالت دارد که میتوانند درزبانهای مختلف نوشته شوند وباهم در ارتباط باشند.
COM یک زبان برنامه نویسی است. توسط زبانهای برنامه نویسی متفاوتی مانند C++ و Cو پاسکال و سایر زبانها می توان COM ایجاد کرد. COM مستقل از زبان ,موقعیت و کامپایلر است. میکروسافت با توسعه COM موجب شد که برنامه های کاربردی انعطاف پذیری بیشتر ودینامیک فراوانی تری پیدا کنند. مانند اکثر محصولات میکروسافت، ویژوال بیسیک هم از COM استفاده می کنند . اگر چه جزئیات COMاز دید برنامه نویس مخفی است.ولی ما درمورد COM وجزئیات مرتبط با آن مطالبی رابیان خواهیم کردچرا که COM پایه اکتیواکس را تشکیل می دهد.
برنامه های کاربردی با COM با یکسری ازاستانداردهای واسط با سایر اجزاء درارتباط هستند.
انواع متفاوتی از واسطه های COM وجود دارند، تعدادی برای کنترلهای اکتیواکس ،تعدادی برای انتقال داده، تعدادی برای ذخیره سازی اطلاعات و غیره . بیشتر واسطه های بنیادی COM ,IUNKNOWN هستند.

هر واسط COM ,IUNKNOWN بایستی شامل متعددهای ADDREF, QUERYINTERFACE , وRELEASE باشد.
ازمتعددها ADDREF, RELEASE به منظور کنترل طول عمر جزء COM استفاده می شود . متعدد QUERY INTERFACE روشی برای پرس و جو است. اگر یک جزء COM عملا از واسط COM پشتیبانی کند. مثلا یک جزء دیگر COMنیاز داشته باشد تا مشخص کند یک جزء دیگر COM آیا از واسط کشیدن ورها کردن حمایت می کندیا نه .میکروسافت با توسعه کارایی COM ، COM+ را اخیرا به بازار ارائه کرده است . کارایی COM+ علمی تراز COM است.
زمانیکه برنامه نویسان ویژوال بیسیک نتوانند بطور مستقیم با COM کار کنند دیگر نمی توانند ازمزایای COM+بهره مند شوند.

COMتوزیع شده(DCOM) نوع توزیع شده COM است. DCOMبه مفهوم اجرای،اجزایCOM برروی یک ماشین راه دوراست درحالیکه تمام جزئیات از دید برنامه نویس پنهان است.
همچنین DCOMدارای ویژگیهایی است که COMاز آنها برخوردار نیست(مانندامنیت).DCOMجزء اصلی وضروری ایجاد برنامه هایEnterprise-Level است.طریقه برقراری ارتباطات در DCOM همانند COM است چرا کهDCOM توسعه یافته COM است.

۱-۱چگونه میتوانیم از COM استفاده کرد؟
تمام این موارد مفید می اشد امادرباره اینکه چگونه یک شئ COM کارمی کندوچطورآنرا ایجاد و گسترش میکنید توضیح نمی دهد.
تقریباً هر محصول مایکروسافت که امروز استفاده می شودیک مدل شی دارد که می تواند واسط آن با هر محصول دیگری برپایه COM ارتباط داشته باشد . به خاطر داشته باشید که فکر کردن روی یک واسط به عنوان ویژگی های اشیاء و عملکردی که می تواند داشته باشد تلقی می گردد.
یک واسط عمومی واسطی است که یک برنامه نویس که از شیء COM استفاده میکند آن را انتخابکرده تا به عنوان هر سرویسی که شما آرزوی آن را دارید دردسترس شما قرار دهد (حتی این می تواند از طریقWINDOWS NT کنترل شود ) معمولاً یک تابع برای انجام آنچه اتفاق می افتد
لازم میباشدمثلاً درVBتابعی بنام CREATE OBJECT وجود دارد که یک نمونه از کلاس مشخص شده را ایجاد ویک رجوع به شیءرا برمی گرداند وقتی که برنامهُ سرویس گیرنده با استفاده ازتابع REATE OBJECT یک CLASS می سازد (COM-SERVERNAME.CLASSNAME ) بااستفاده از یک اشاره گرمی تواند به تمام خواص متددهای آن کلاس که درسرویس دهنده COM است دسترسی پیدا کند .این سرویس دهنده می تواند یک تابع ساده DLL ویاکل برنامه کاربردی مثل INTERNET EXPLORER,WORD,EXCELیا OUTLOOK باشد.
اینجا یک مثالی است که ممکن است شما در یک برنامه کاربردی VB آنرا ببینید این تابع به منظور راه اندازی کردن یک برنامه روی چند کامپیوتر CLIENT-SERVER است.شما عملاً،عملکرد COMرا هنگامیکه داده ها از یک منبع داده با استفاده ازADO باز گردانده می شوند را دیده اید. مثال بعدنشان می دهد که چطور یک RECORDSET با محتوای جدولTBLUSERGROUP از پایگاه داده SECURITY ایجاد می شود.

AS NEW ADODB.RECORDSET DIM OBJRECORDSET

OBJRECORDSET.OPEN “TBLUSERGROUP”,DSN=”SECURITY;UID=SA;PWD;”
این مثال بسیارساده است. نیاز دیگری که باید وجود داشته باشد این است که ماشین سعی در ایجاد اشیایی کند که بتواند یک رجوع را به کلاس و سرویس دهنده در رجیستری آن پیدا کند . اگر این رجوع به یک DLL یا EXE که روی همان ماشین قرار گرفته ، به عنوان یک فراخوانی برنامه کاربردی ، اشاره کند، در این صورت COM می باشد ، اگر سرویس گیرنده روی ماشین خودش یک نماینده پیدا کند که ان به ماشین دیگری اشاره داشته باشد در این صورت یک COM توزیع شده یا DCOM خواهد بود . همانطور که ممکن است حدس بزنید آن چیزی اغلب در برنامه های کاربردی چند سطحی که می تواند روی سرویس دهندهای شبکه قرارگیرد و توسط سرویس گیرنده ها به اشتراک گذاشته شود DCOM می باشد.
فواید استفاده از DCOM چندین فایده مختلف در استفاده از DCOM در مقابل COM وجود دارد.
نگهداری: در روش DCOM یک شئ بر روی سرویس دهنده قرار می گیرد و هیچ سرویس گیرنده ای آن را به روز در نمی اورد. هر گونه تغییر و تحول در یک شئ که روی سرویس دهنده قرار دارد باعث می شود که این تغییرات بلا فاصله به تمامی سرویس گیرنده ها انتقال یابد.
۲-مدل تک برنامه ای: از دید برنامه نویس تمام اشیاء COM یکسان است و احتیاج بکار اضافی برای تولید DCOM نیست. تنها مسئله سازماندهی ان می باشد. شما نیز می توانید در صورتی که از نظر هزینه مقرون به صرفه باشد اجزاء را به سرویس دهنده توزیع کنید تا سرویس دهی آن نیز اسانتر شود.
تابعیت انعطا ف در گسترش: اغلب اینطور به نظرمی رسد که اشیاء COM, UI-CENTRIC روی پردازش های سرویس گیرنده اجراء می شوند در حالیکه سرویس دهندهای DATA- CENTRIC روی شبکه اجراء می گردند حال اگر معماری سیستم تغییر کند به موجب آن DLLسمت سرویس گیرنده باید سرویس دهنده توزیع شود و کارهای خیلی کم باید انجام گیرد این مسئله تنها در سازماندهی می باشد و نیازی به تغییر در کد برنامه نیست .

۴-سکوهای CROSS : DCOM توسط سکوهای زیر پشتیبانی می شود WINDOWS 4.0+ APPLE ACINTO, SH WINDOWS 95, SUN SOLARIS, AIX, MVS,SCO UNIXWARE, LINUX .
ارتباط پردازشهای CROSS در DCOM از میان شبکه توسط STUB ها و نماینده ها انجام میگیرد. هنگامیکه یک شئ COM روی یک سرویس گیرنده در خواست می شود ان رجیستری ماشین را برای وجود سرویس دهنده و کلاسها از طریق PROGID چک می کند. اگر سرویس دهنده به عنوان یک جزء COM سازماندهی شده باشد روتین COM باید یک شئ PROXY را روی سرویس گیرنده پیدا کند.

یک تکنولوژی است که به برنامه ها اجازه همکاری با یکدیگر را می دهد ( برای مثال میتوانیم در درون برنامه WORD . از یک لیست EXEL استفاده کنید ، بدون انکه برنامه EXEL را باز کرده باشید انهم به صورت مستقیم ) . OLE تعدادی سرویس شامل عملیات کشیدن و رها کردن (DRAY-AND-DROP ) و اتوماسیون را ارائه می کند .
۱-OPTION EXPLICIT
2-DIM MWORD . AS NEW WORD. APPLICATION
3-
4-PRIVATE SUB CMD WRITE- CLICK ( )
5-CMD WRITE. ENABLED= FALSE 6-CALL M WORD. DOCUMENTS.ADD
7-M WORD. SELECTION. SHADING. TEXTURE= WD TEX TURE22 PT5 PRECE
8-MWORD. SELECTION.FONT. SIZE=30
9-CALL MWORD . SELECTION. TYPETEXT (TXTINPUT.TEXT)
10-CALL MWORD .DOCUMENTS(1). SAVEAS(“D,\WORD.DOC”)
۱۱-CALL MWORD. QUIT
12-END SUB
در خط ۱ ما یک شئ به نامMWORD می سازیم . در دکمه CMD WRITE در خط ۵ ما دکمه را خاموش می کنیم در خط ۶ یک سند اضافه می کنیم . در خط ۷ رنگ پس زمینه را تغییرمی دهیم با ثابت WD TEXTURE22 PT5 PRECENT . در خط۹ مقداری را از TEXTBOX به نام TEXTINPUT گرفته به داخل DOCUMENT می ریزیم و در خط ۱۰ DOCUMENرا ذخیره می کنیم.

 

۴-۱ ACTIVEX
کنترل های اکتیواکس اجرای قابل استفاده مجددای هستند که به برنامه های ویژوال بیسیک اضافه میشوند. یک کنترل اکتیواکس تقریبا هر کاری که برنامه نویس تصور کند میتواند انجام دهد، تقویم، پردازش لغت، ویرایشگر تصویر، بازی کارت وغیره…
کنترلهای اکتیواکس می توانند از دید کاربر مخفی باشند یا در دید کاربر قرار بگیرند. برای مثال کنترل اکتیواکس بازی کارت به طور مشخص بایستی در دید کاربر قرار داشته باشد. کنترلهای اکتیواکس تکامل تدریجی کنترلهای OLE هستند، برخی از کنترلها به مانند یک میزبان برای یک کنترل

 

دیگر به کار می روند.
کنترل اکتیواکس ریشه در کنترلهای OLE و توسعه کنترلهای ویژوال بیسیک دارند. کنترلهای VBXقبل ازکنترلهای اکتیواکس ایجاد شده اند. کنترلهای OLEو VBX تکنولوژی سالهای پیش هستند. هزاران کنترل VBX در طی سالهای گذشته ایجاد شدهاند. تعدادی از این کنترلهای VBX مجددا توسط کنترلهای اکتیواکس باز نویسی شده اند . ازکنترلهای VBX نمی توان در ویژوال بیسیک ۵ یا ۶ استفاده کرد.
سه نوع متفاوت از کنترلهای اکتیواکس را می توان توسط ویژوال بیسیک ایجاد کرد. کنترلهای ایجاد شده توسط کاربر کنترلهای افزودنی و کنترلهای متراکم . ساخت و توسعه کنترلهای ایجاد شده توسط کاربربسیارمشکل است. این کنترلها انعطاف پذیری بیشتر درطراحی فراهم می اورند OLEDB.
OLEDB یک دستور کار با ذکر خصوصیاتی است که تعریف می کند چگونه دسترسی داده مایکروسافت کار می کند به طور خاص مشخصات OLEDB در زیر امده است:
۱-OLEDBبه عنوان یک رابط برنامه نویسی در سطح سیستم موجود می باشد. این خصوصیت مشابه ODBC میباشد.
۲ – در حالیکه ODBC برای دسترسی به پایگاه داده ای رابطه ای ایجاد شده بود، OLEDB برای دسترسی به هرذخیره دادهای طراحی گردیده است. برای مثال شما می توانید آنرا برای دسترسی به منابع رابطه ای یا غیر رابطه ای که شامل MAIN FRAME, ISAM/RSAM و پایگاه داده های سلسله مراتبی می باشند بکار ببرید. همچنین می توان به سیستمهای ذخیره فایلی که کمتر نستی هستند از قبیل سیستمهای پست الکترونیکی و سیستمهای فایل که داده های متنی و گرافیکی و غیره را ذخیره می کنند دسترسی داشته باشد.
۳-OLEDB یک مجموعه ای از رابطهای COM را تعریف میکند که سرویسهای سیستم مدیریت پایگاه دادهای ختلف را کپسوله می کند.
۵-۱ADO
ADO یک مجموعه اشیاء COM می باشد که همانند مصرف کننده روی دادهO

LEDB عمل می نماید. ADO رابطهای OLEDB سرویسهای مدیریت دسترسی به داده های دیگررا دیگر در سطح سیستم مدیریت می کند، در صورتیکه سطح کاربردی که از رابطهایOLEDB زبدست آمده اند را نمایش می دهد. ADO یک مدل برنامه نویسی پایگاه داده میباشد که به برنامه نویسان اجازه نوشتن برنامه های کاربردی روی داده های OLEDB به هر زبانی ازقبیل JAVA SCRIPT VB, JAVA,VBSCRIPT, وC/C++ را می دهد.هر شئ در یک هدف واحد و مجموعه خواص غیر پیچیده متدها و رخدادها را دارا می شود اگر چه این اشیاء پیچیده نمی باشند ولی بسیار قدرتمند هستند.ه ODBC نیست.

از زمان انتشار انها در سال ۱۹۹۷ مدل ADO تغییرات زیادی نکرده است، اما با هر نسخه جدید مایکروسافت هر یک از اشیاء را به وسیله اضافه کردن متدها و خصوصیات جدید و به وسیله به وجود اوردن واسطه ها توانا تر وکارا تر نموده است.

شکل ۲-۱ مدل شئ ADO یک ساختار ساده و قدرتمند سلسله مراتب جهت دسترسی به داده می باشد

اینک نظری به مدل شئ ADO و هدف از هر شئ می پردازیم.همانطور که در شکل ۲-۱می بینید، مدل شئ بسیار ساده می باشد و فقط تعداد معدودی اشیاء اصلی وجود دارند. اشیاء در یک مجموعه شئ محض بصورت سلسله مراتبی پیاده سازی گردیده اند. بالاترین شئ CONNECTION است که شامل مجموعه ERRORS می باشد که هر یک شامل اشیاءERROR می گردند. همچنین CONNECTION شامل شئ COMMAND نیز می گردد که هر یک از آنها یک مجموعهP ARAMETER را که شامل اشیاء PA RAMETER می باشد دارا هستند.

همچنین شئ CONNECTION شامل FIELD اشیاء RECORDSET نیز می گردد که هریک از آنها یک مجموعه FIELDS در خود جای می دهند که شامل اشیاء می باشند.
مدل شئ ADO همچنین یک مجموعه از خصوصیات را که متعلق به اشیاء CONNECTION COMMAND, RECORDESTوFIELD می باشند شامل می گردد، خصوصیات مجموعه ها و خواص اشیاء در فصلهای بعد شرح داده می شوند.

ADO -2
1-2-شئ CONNECTION
شئ CONNECTION یک هدف اصلی دارد که عبارت است از اینکه توانایی برقراری ارتباط با یک منبع داده رابرای شما فراهم می سازد . یک شئ CONNECTION یک جلسه یکتا ( یک رابط OLEDB مشخص) را با یک منبع داده ارائه می نماید.توسط شئCONNECTION شما می توانید به منابع داده ساده از قبیل فایلها روی سرویس دهنده یا روی منابع بیشتری مانند سیستم RDBMS پیدا نمایید. شئ CONNECTION مجموعه ای عملکرد جزئی را به کمک تعداد کمی مجموعه ، خصوصیات و متدها پشتیبانی می کند. اکنون خواهید دیدشئ CONNECTION برای شما بعنوان یک برنامه نویس شامل مزایایی به شرح زیر می باشد :
به شما اجازه می ذهد که یک اتصال به یک منبع داده با متد OPEN برقرار نمایید.
برای منابع داده SQL که یک فراهم کننده OLEDB ندارد ارتباط ها می توانند با استفاده از فراهم کننده OLEDB – ODBC برای برقرار شوند. برای منابع داده SQL و غیر SQL که یک فراهم کننده OLEDBخاص را دارا می باشند نیز ارتباط میتواند با استفاده از فراهم کننده آن منبع داده برقرار گردد.
به شما اجازه اجرای عبارت یا رویه ذخیره شده SQL را با متد EXECUTE می دهد.
ـ به شما اجازه کار کردن روی تراکنشها را جهت بروز رسانی داده از طریق استفاده ازمتدهای تراکنش COMMIT, ROLLBACKTRANS, BEGINTRANS,TRANS میدهد.
در کد مثال زیر ، یک متد OPEN یک اتصال به پایگاه داده سرویس دهنده SQL از طریق یکODBC DSN را برقرار می نماید.
Sub ConnectionExample()
Dim objconn As ADODB.Connection
Set objconn = New ADOBDB.Connection

 

‘’open a connection
“,” ” objconn.Open ‘DSN=”ADOBook”,”sa
‘find out if the attempt to connect worked
If objconn.state = adstateopen Then
‘connection succceded
Else
‘ connection failed_handle appropriately
End If
‘close the connection and destroy it
objconn.Close
Set objconn = Nothing
End Sub
برقراری ارتباط
مراحل زیر در هنگام ایجاد ارتباط شروع می شوند.
۱-اتصال به یک منبع داده ای: به یک منبع داده ای با استفاده ازفراهم کننده مناسب متصل شوید.
۲-اجرای اختیاری یک فرمان: می توان با استفاده از پارامترها و یا بدون استفاده از آنها فرمانی را برای برگرداندن تعدادی سطر از جدول و یا به روزرسانی آنها صادرکنید.
۳-بطور اختیاری ایجاد یک مجموعه رکورد(مکان نما).
شئ CONNECTION به ما اجازه میدهد که یک اتصال فیزیکی را به منبع داده ای بوسیله استفاده از واسطهایOLE DB ،جهت ایجاد جلسه OLE DB برقرار کنید. وقتی ما از شئ اتصال استفاده می کنید، دائماً از یک فراهم کننده داده برای منبع داده ای که ما سعی در دستیابی به آن داریم

استفاده می کنیم. فراهم کننده داده برنامه ها و واسطهای کامپایل شده ای می باشند که چگونگی مدیریت منبع داه را میدا نند.وقتی که ADO برای اولین بار ارائه شد تعداد بسیار کمی فراهم کننده وجود داشت،که اولین آنها ICROSOFT OLE DB برای ODBC بود(MSDASQL) . این فراهمکننده از واسطهای OLE DB روی ODBC جهت دستیابی به منابع داده ای مورد قبول ODBC .
استفاده می کرد.در حال حاضر بعضی از این فراهم کننده ها عبارتند از:
‍Provider for ODBC Microsoft OLE DB
Provider for Microsoft jet Microsoft OLE DB

Provider for Microsoft Index Server Microsoft OLE DB
Provider for Oracle Microsoft OLE DB
Provider for Active Directory Server Microsoft OLE DB
Text Provider Microsoft OLE DB
2-2- ارتباطهایی بر پایه DSN
در مثال بعدی یک اتصالی که از فراهم کننده MSDASQL و یک DSN شرح داده می شود . یک سیستم DSN در بخشODBC ایجاد می شود و اطلاعات اصلی مربوط به برقراری ارتباط با بانک اطلاعات را تعریف و ذخیره می کند .
Public Sub OpenWithDSN
Dim objcnn As New ADODB.Connection
Dim objrst As New ADOBDB.Connection

objcnn.ConnectionTimeout = 30
objcnn.CommandTimeout = 30
objcnn.Provider = “msdasql”
objcnn.Open “DSN=ADOBook” ‘add code to create a recordset from execute method’
Set objrst = objcnn.Execute(“select * from customers

“)

‘close the connection and destroy it
objcnn.Close
Set objcnn = Nothing

End Sub
3-2 تعریف متغیرهای شئ
در مثال بعدی یک متغیر شئ اتصال،objcnn تعریف و یک نمونه از آن ایجاد شده است.
Dim objcnn as ADODB.Connection
Set objcnn =NEW ADODB.Connection
در کد بالا کتابخانه CONNECTION در ADO بصورت Early Binding مورد استفاده قرارگرفته است. Early Binding ضرورتاً به این معناست که واسط یک جزء COM می تواند در زمان طراحی رجوع شود.
مقداردهی خاصیتها قبل از باز شدن اتصال قبل از اینکه یک اتصال برقرار کنیم ،ما می توانیم خصوصیاتی را که رفتار شئ CONNECTION را کنترل مکند مقداردهی کنیم که این خصوصیات شامل CommandTimeout, Connection Timeout فراهم کننده میباشد.
ConnectionTimeout
مدت زمانی را که یک برنامه کاربردی منتظر می ماند و سعی در برقراری اتصال به منبع داده از زمانی که متدد OPEN صادر شده است می کند را معین می کند. لازم نیست ما این مشخصه را مقداردهی نماییم چون بصورت پیش فرض مقدار اولیه ۱۵ میلی ثانیه به آن داده شده است.

CommandTimeout
زمان تعیین شده برای اجرای دستورات را با شئ اتصال متد Execute اداره کنید. همچنین شئ ADO Command یک متد Execute و هم یک مشخصه CommandTimeout مخصوص خود دارد.
مقدار پیش فرض CommandTimeout ،۳۰میلی ثانیه است.
Provider
ما میتوانیم مقدار این خاصیت را قبل از برقراری یک ارتباط مقداردهی نماییم.اگرما قصد استفاده از فراهم کننده MSDASQL را داریم مقدارهی این مشخصه ارزش زیادی ندارد زیرا این فراهم کننده دیگری استفاده نشده باشد استفاده میشود همچنین فراهم کننده میتواند در آرگومانهای متدOPEN نیز مشخص شود.
استفاده از متد OPEN
ما متد OPEN جهت برقراری ارتباط استفاده میشود.
Object.open [Connectionstring as string],[userID as string],[password as string],[options as long=-1]
مشخص کردن CONNECTION STRING
هریک از آرگومانهایی که این متد می گیرند اختیاری است. حتی آرگومان ConnnectionString نیز اختیاری است ، چونکه ما می توانیم مشخصه مذکور را قبل از متد open مقداردهی کنیم.
وقتی که ما یک ارتباط را بر پایه یک فایل، کاربر یا سیستم DSN ، باز کنیم . مقدار رشته ارتباط همانطوریکه گفته شد باید به اسم DSN اشاره کند. ساختار DSN برای منابع داده ای ODBC تفاوت می کند.

مشخص کردن PASSWORD,USERID
در اغلب حالات این آرگومانها احتیاج نمی شوندچونکه DSN ممکن است آنها را تعریف کند.
مشخص کردن Option
ما می توانیم آرگومانهای OPTIONS را برای باز کردن اتصال ای که از یک openoptionEnum استفاده می کند ، بکار ببریم . بعنوان مثال این به ما اجازه باز کردن یک اتصال را بصورت غیرهمزمان می دهد.
۴-۲ اتصال بدون DSN
باز کردن یک اتصال بر پایه یک فایل برای کاربر یا سیستم DSN می تواند برای بعضی برنامه های کاربردی نگهداری دشواری باشد .اگر ما یک برنامه کاربردی سرویس گیرنده می نویسیم که اتصالات را از ایستگاههای کاری سرویس گیرنده باز می کند، DSN ای که به آن رجوع می شود باید در هر ایستگاه کاری سرویس گیرنده موجودباشدکه این به معنی سرباز برای نصب برنامه کاربردی است . حتی جایی که اسکریپت یا شئ های تجاری در یک برنامه کاربردی تحت وب ارتباطات را بوجود آورند یک اتصال بر پایه DSN به این معنی است کهDSN باید روی سرویس دهنده موجود باشد.
خوشبختانه ADO همانند اجداد خود DAO,RDO امکان ایجاد ارتباط بدون DSN برای یک منبع داده ای ODBC را فراهم می کند .در یک ارتباط بدون DSN,ConnectionString که ما تعریف می کنیم تمامی اطلاعات لازم جهت ایجاد بجز اطلاعات registery یا فایل را دارا باشد.
Public sub openWithoutDSN()
Dim objcnn as ADODB.Connection
Dim strconnect as string

Set objcnn=NEW ADODB.Connection
‘set connection and command timeouts
objcnn.connectionTimeout=30
objcnn.commandTimeout=30
‘default connection string strconnect=”provider=MSDASQL;Driver={sqlserver};server=DALA;UID=sa;” & _
“DATABASE = ordermanager”

objcnn.open strconnect
End Sub
برقراری ارتباط بدون DSN برای دستیابی به منبع داده ای ODBC هیچگونه تاثیر منفی ای ندارد حتی باعث پایین آمدن سرعت اجرا هم نمی شود.
۵-۲ برقراری ارتباط بوسیله JET Provider
از نقطه نظر کد نویسی ، ایجاد یک ارتباطی با استفاده از فراهم کننده دیگری جز MSDASQL بسیار ساده وآسان است.اتصالی که با یک پایگاه داده Microsoft JET باز میشود OrderManager نامیده می شود و مجموعه Fields از Recordset معین می شود . برنامه های زیر از فراهم کننده Microsoft OLE DB برای Microsoft JET استفاده می کند.
Public sub userjetprovider()

Dim objcnn As NEW ADODB.Connection
Dim objrst As NEW ADODB.Recordset

With objcnn
.CommandTimeout=15
.ConnectionTimeout=15 .Provider=”Microsoft.JET.OLEDB.3.51”
.Open “d:\book\code\Ordermanager.mdb”
End With

Objrst.Open “SELECT * FROM Customer”,objcnn

DO While Not objrst.EOF
Debug.Print objrst(i)
Objrst.movenext
Loop

Objrst.close
Set objrst=Nothing
Objcnn.close
Set objcnn=Nothing

End Sub
ما مشخصه فراهم کننده را Microsoft.jet.OLE DB.3.51 قرار می دهیم .متد Openشامل دستیابی به فایل .mdb (برای آرگومانConnectionString) و JET را به عنوان مقدار پیش فرض رمز عبور admin برای آرگومان شناسنامه کاربری در اختیار دارد.

 

۶-۲ برقراری ارتباط بوسیله SQL Server Provider ما می توانیم از فراهم کننده MSDASQL جهت متصل شدن به یک پایگاه داده ای SQL SERVER استفاده کنیم ، اما همچنین میتوانیم از Microsoft SQL Server OLE DB هم استفاده کنیم. زمانیکه ما کد برای فراهم کننده JET آزمایش می کردیم مقدار دادن به فراهم کننده اشاره می کند. ما هم
چنین می توانیم با مقداردهی به آرگومان provider درConnectionstring آن را مقداردهی کنیم . ما به SQL Server Provider مشابه SQL OLE DB رجوع می کنیم.آرگوما

ن Location نام سرویس دهنده را مشخص می کند و آرگومان data source نام پایگاه داده را بیان می کنیم.
Public Sub OpenWithSqlProvider()

Dim objcnn As NEW ADODB.Connection
Dim strconnect As String

Strconnect=”Provider=SQLOLEDB;Location=DALA;DataSource=ordermanager;” & _
USER ID=sa;Password=;”
Objcnn.Open strconnect
Objcnn.close
Set objcnn=Nothing

End Sub
خاتمه ارتباط زمانیکه ما از شئConnectionاستفاده می کنیم باید در انتها برای پایان دادن به ارتباط ازمتد close استفاده کنیم .یا همچنین ما می توا نیم از متد close جهت استفاده مجدد از متغیرهای شئ یکسان برای اتصالهای مختلف استفاده نمائیم.به همین شکل شئ Recordset یک متد close داردودر سبکی مشابه استفاده می شود. جهت مطمئن بودن از اینکه حافظه سربار اشیاء ADO را آزاد نموده ایم باید مقدار آن را هیچ قرار دهیم.
اجرای دستورات شئ Connection همچنین توانایی اجرا کردن دستورات SQL یا رویه های ذخیره شده بوسیله متد Execute را به ما می دهد. ما برای این منظور هم می توانیم از متد Execute شئ Command هم استفاده کرد. اما استاده از متد Execute موجود شئ Connection بسیار کاراتر ومناسبتر است.
اگر بخواهیم بطور کلی صحبت کنیم ما باید بتوانیم کدی راکه احتیاج داریم کاهش دهیم ، به همان صورتی که می توانیم نیاز به یک یا تعداد بیشتری ازشئ Command که از منابع استفاده می کننداز بین ببریم .در نمونه کدهای بعدی که در زیر می آیند ،متد Execute جهت اجرای دستور INSERT در SQL ،یک رویه ذخیره شده و بالاخره برای یک دستور SELECT که یک مجموعه رکورد را بر می گرداند استفاده می شود.
۷-۲ اجرای یک دستور SQL

استفاده از متد Execute در شئ Connection درنهایت به سه آرگومان نیاز دارد. اول ،Command_ Text که دستور SQLرا شناسایی میکند ( یا نام رویه ذخیره شده ) . دوم آرگومان RecordsAffected که اختیاری است که آرگومان خروجی دستور می باشد. توسط آن ما می توانیم بعد از پردازش عملیات بفهمیم که روی چه تعداد رکورد عملیات انجام شده است و بالاخره آرگومان Options که این هم اختیاری است که ماهیت عمل اجرا را بوسیله یک یا تعداد باطنی شناسایی می کند . به طور مثال در اینجا یک دستور INSERT در SQL ،یک سطر به جدول Salesrep اضافه میکند.

Public Sub ExecInsert()

 

Dim objcnn As NEW ADODB.Connection
Dim strconnect As String
Dim strinsert As String
Dim intrecsAffected As Integer

Strconnect=”Driver={SQLServer};Server=DALA;UID=sa;DataBase=OrderManager;”
StrInsert=”INSERT INTO Salesreps(srrepid,srfname,srlname,srmidinit,srssn,srcomm _
IssionRating) VALUES(20,’jon’,’smith’,’j’,’۵۵۵-۵۵-۵۵۵۵’,۳)”
With objcnn
.Open strconnect
.Execute strinsert,intrecsAffected,adcmdText
End With
Debug.print intrecsAffected & “records were processed ”
Objcnn.close
Set objcnn=Nothing

End Sub

آرگومان Options می تواند به یک عدد از نوع عمومی Enum مقداردهی شود ،شامل adcmdText برای اجرای دستورات SQL adcmdStoredProc; برای اجرای یک CommandText که نام یک رویه ذخیریه شده را مشخص می کندو adAsyncExecute برای اجرای یک دستوربصورت غیر همزمان.

۸-۲ اجرای یک رویه ذخیره شده
شئ استفاده از متد Execute جهت اجرای یک رویه ذخیره شده نسبتاً ساده و آسان است. یکی از ارزشهای سودمند و مفید تعریف رویه های ذخیره شده ، تعریف پارامترهایی است که می توانند بصورت پویا تهیه شوند که به این معناست که رویه ها می توانند یکبار تعریف شوند ، سپس با مقادیر ورودی یا خروجی متفاوت بطور مکرر استفاده شوند. متد Execute شئ Connection هیچ ربطی به کار پارامترها ندارد اما CommandExecute چنین نیست.
مثال بعد ی اجرای یک رویه ذخیره شده را که یک سطر به جدول Sales Repsاضافه میکند توضیح می دهد.
With objcnn
.Open strconnect
.Execute “AddSalesRep”,intrecsAffected,adcmdStoredProc

End With
Debug.print intrecsAffected & “records were processed

۹-۲ کار کردن با مجموعه رکوردها
در نهایت ما می توانیم از متد Execute برای برگرداندن گروهی از Recordset ها استفاده کنیم.نکته :اصل موضوع این است که از اجرای یک دستور Select در SQL

برگردانده می شود یک از نوع مکان نما رو به جلو دارد.مثال زیر متغیر شئ Recordset را توصیف می کند و از آن بعنوان شئ برگردانده شده توسط متد Execute استفاده می کند .
Public Sub ExecInsert()

Dim objcnn As NEW ADODB.Connection
Dim objrst As NEW ADODB.Recordset
Dim strconnect As String
Dim strSQL As String

Strconnect=”Driver={SQLServer};Server=DALA;UID=sa;DataBase=OrderManager;”
StrSQL=”Select * From Customers Where cuCustomerID<” & 1050 & “Order By” & _ “cuCustomerName”
With objcnn
.Open strconnect
Set objrst=.Execute(strSQL,adcmdText)
End With
Objrst.close
Set objrst=Nothing
Objcnn.close
Set objcnn=Nothing

End Sub 10-2 رویدادهای ADO
چیزی که برای ADO تازگی دارد توانایی استفاده از رخدادهای اشیاء و اجرای بعضی از عملیات غیر همرمانی است . برنامه نویسی با ویژوال بیسیک مبتنی بر شنا خت رویدادهااست. بعضی از اشیاء ADO 2.0 شامل رویدادهایی میشوند که در پا سخ به عملیات مشخصی بوقوع می پیوندند.
دو طبقه بندی برای رویدادهای ADO وجود دارد : آنهایی که قبل از اینکه عملیات شروع بشود اتفاق می افتند و یا آنهایی که قبل از کامل شدن یک عمل واقع می شوند . حتی یک یا دو رویداد سرگردان هم که در طول پردازش یک عملیات اتفاق می افتد نیز وجود دارد.رخدادهای ADO برای شئ Connectionو شئRecordset استفاده می شوند.این رخدادهاADO خواه عملیاتی موفقیت آمیز باشد یا نباشد واقع می شوند.
استفاده از رخداد WillConnect:
از این رویداد برای نوشتن کدی که میتواند تصمیم بگیرد که آیا اتصالی که در شرف برقرارشدن است مو فقیت آمیز است یا نه ، استفاده میشود واگر فرایندی برقراری ارتبا

ط موفقیت آمیز نباشد آرگومانهای ConnectionString را برای حل مشکل تغییر می دهیم .
استفاده از رویداد RollbackTranscommplete:
از این رویداد برای تصمیم گیری اینکه چه زمانی یک تراکنش کامل یا Ro

llback می شود استفاده می کنیم.در پاسخ ما ممکن است تراکنش دیگری را انتخاب نماییم.
استفاده از رویداد ExecuteComplete:
از این رویداد برای تصمیم گیری اینکه چه زمانی اجرای یک فرمان به پایان می رسد و اینکه آیا موفقیت آمیز بوده است یا خیر استفاده می شود ،سپس پیش رفتن یا قطع شدن یا عملگرهای دیگر را بر اساس نتیجه انتخاب می کنیم.
۱۱-۲ خصوصیات پویا ADO
ADO دارای مشخصه های پویا و ذاتی می باشد. مشخصه های ذاتی آنهایی هستند که شما به تازگی مشاهده کرده اید مثل CONNECTIONTIMEOUT یا COMMAND TIME OUT اما اشیاء ADO همچنین از طریق مشخصه های پو یای مجموعهPROPERTIES که رفتارفراهم کننده ای که شما از آن استفاده می کنید را توصیف و نشان می دهد، استفاده می کند. اشیاء CONNECTION, COMMAND, PARAMETER, RECORDSET, FIELDهمگی یک مجموعه PROPERTIES دارند، هریک از مجموعه ها شامل صفات مشخص فراهم کننده مرتبط با شئ ای که مجموعه را نگهداری می کنند.پرسشی PROPERTYدارای خصوصاتی مثلNAME, TYPE, VALUE, ATTVIBUTES,
می باشد، مشخصه NAME نام شناخته شده فراهم کننده را مشخص می کند. مشخصه VALUE اطلاعات لازم در تصمیم گیری رفتار مشخصه را شامل می شود. بطور کلی زمانی که شما میتوانید از اشیاء ADO استفاده مجدد نمایید ممکن است که نیاز به امتحان مشخصه های پویا بکار گرفته شده توسط فراهم کننده ، جهت تصمیم گیری اینکه برنامه کاربردی شما میتواند بطور مطمئنی یک عملیات جهت دستیابی داده انجام دهد داشته باشید .برای مثال یک شئ Connection می تواند از طریق دو یا تعداد بیشترفراهم کننده برای دسترسی به داده استفاده مجدد بشود. اول شما می بایست که یک اتصال وارتباطی را برقرار کنید وهر کدام از جملاتی را که لازم بودند اجرا نمایید و سپس ارتباط راببندید. اما برای اینکه شما بخواهید از همان متغییر شئ CONNECTION جهت دستیابی به منبع داده دیگری استفاده نمایید ، باید بعدا دوباره از همان نمونه شئ استفاده کنید و دوباره ارتباط را به منبع داده دوم برقرار کنید . اگر چه فراهم کننده ای که اکنون از آن استفاده می شود ممکن است بعضی عملیات را پشتیبانی ننماید . قطعه کد زیر نشان می دهد که بوسیله فهمیدن مقدار یک مشخصه پویا شما می توانید تصمیم بگیرید که چطور کدتان باید اجراء شود.

With objcnn
.CommandTimeout=15
.ConnectionTimeout=15
.Provider=”Microsoft.jet.OLE.DB.3.51”
.Open “d:\book\code\ordermanager.mdb”,”admin”
End Sub
Objrst.Open “SELECT * FROM customers”,objcnn
Intcount=1
For Each ObjPrp in

Objcnn.Properties Debug.Print intcount & “)Name:” & ObjPrp.Name & “Value” & ObjPrp.Value \
Intcount=intcount +1
Next
3 اداره کردن خطاها

بطور یقین هر برنامه کاربردی که شما می نویسیدمیخواهید که بطور صحیح خطاهای زمان اجرا اداره شوند . وقتی شما با ADO کار می کنید بیاد داشته باشید که شئ اتصال یک مجموعه ERROR است که اشیاء ERROR را نگهداری می کند.
شئ ERROR می تواند برای پرسش کرد از خطاهای پاس داده شده به ADO از طریق فراهم کننده استفاده شود. شئ ERROR یک تعدادی مشخصه (نشان داده شده شکل ۵-۲) را دارد مثل NUMBER, DESCRIPTION, SOURCE, NATIVEERROR,HELPFILE, و HELP CONTEXT وSQLSTATE .
زمانیکه شما درحال انجام یک عملیات با شئ ADO هستید اگر یک خطایی فراهم کننده اتفاق بیفتد، خطا ها به ADO پاس داده می شوند و ADO یک یا بیشتر شئ ERROR را در مجموعه خطاها جایگزین می کند . قبل از اینکه شما مثالهایی برای خطاها امتحان کنید اجازه بدهید نگاه نزدیکتری به اطلاعاتی که شما می توانید از مشخصه ها بدست آورید بیندازیم :
NUMBER :
از این مشخصه جهت شناسایی عدد منحصر بفردی که شرط خطا را مشخص می کند استفاده می کنند.
DESCRIPTION :
از این مشخصه جهت بیرون کشیدن اطلاعات توصیفی در مورد خطاها استفاده می کنند.
SOURCE :
نام یک کلاس یاPROGID را که منبع خطاهارا شناسایی می کند باز می گردانداگریک فراهم کننده خطایی را ایجاد و تولید کند SOURCE ممکن است شناسه ای برای ان فراهم کننده شامل شود. خطاهای ایجاد شده در“ ADODB,” ADO را بعنوان قسمتی از مقداربازگشتی مشخصهSource باز می گردانند .

NativeError:از این مشخصه جهت بازیابی اطلاعات خطای معینی از پایگاه داده استفاده میشود.
برای مثال زمانی که از MSDASQL با یک پایگاه داده سرویس دهنده SQL استفاده میشود خطا های محلی ازطریق ODBC فراهم کنندهMSDASQL ،به مشخصه NativeError ،ADO ارسال می شود.

این فقط قسمتی از متن مقاله است . جهت دریافت کل متن مقاله ، لطفا آن را خریداری نمایید
word قابل ویرایش - قیمت 8700 تومان در 31 صفحه
87,000 ریال – خرید و دانلود
سایر مقالات موجود در این موضوع
دیدگاه خود را مطرح فرمایید . وظیفه ماست که به سوالات شما پاسخ دهیم

پاسخ دیدگاه شما ایمیل خواهد شد