+ All Categories

ADO

Date post: 07-Aug-2015
Category:
Upload: hotland-sitorus
View: 19 times
Download: 3 times
Share this document with a friend
Description:
ACTIVEX DATA OBJECT
Popular Tags:
38
ه ب ام ن دا خ گاه ش ن دا اد ز ا ي م لا س ا واخد ان ج ن ز ام ن دزس كه ب ش: هاي ري* ت و ي. پ م كا وع ض و م: * ق ق ن اي ز ج اADO (ActiveX Data Objects) وه ح ن و اده ف* ت ش ا از ها ن ا دز ي ف ل د5 اد* ب ش ا اي* ق : ا ر* كت د ر ص ا ن ري ت مد و ح ش ن دا مد ح م: ي ن ا ض م ز س( د78824472 )
Transcript
Page 1: ADO

خدا نام به

زنجان واحد اسالمي آزاد دانشگاهكامپيوتري هاي : شبكه درس نام

تحقيق: موضوعADO (ActiveX Data Objects) اجزاي

5 دلفي در آنها از استفاده ونحوه

مديري ناصر دكتر : آقاي استاد(78824472 د )ش رمضاني : محمد دانشجو

اول نيمسال80-81 تحصيلي سال

برنامCه كCCه بود آن مدل اين طراحي از است. هدف كوچك بسيارADO مدل از را خCCود نيCCاز مورد روكوردهاي ممكن روش سريعترين به بتوانند نويسان

ADO اصلي هدف دو سادگي و سرعت كه آلنجا كنند. از استخراج داده منبع

مسCCتقيم طCCور بCCه واسCCطه اشCCيا از عبCCور بودن ميتوان مدل اين در هستندRecordsetكرد. ايجاد را

: دارد وجود اصلي شي سه تنهاADO مدل در واقع درشي Connectionاست. داده پايگاه به اتصال همان كهشي Commandميرود. بكار جستجو اجراي براي كه

Page 2: ADO

شي Recordsetهمان كه Recordsetشي خروجي Command.است

ADOها داده به دسترسي قابليت و است اي داده اشياء از اي مجموعه قابليتهاي دلفي، يADO . اجزاي سازد مي پذير امكان راOLE DB طريق از

ADO. دهند مي قرار اختيار در شده كپسوله صورت به راADO اشياي

. است مايكروسافت شركت از محصوليconnection , command اشياي و recordest , شد ذكر كه طور همان

TADOCnnection , TADODataSet اجزاي درون و ميباشندADO اشياي مهمترين

,TADOcommand همچنين اند درآمده نمايش به . ADOكمكي اشياي شامل مستقيم صورت به كمكي اشياي اين اما باشد مي نيزField نظير ديگري آنها براي و گرفت قرارنخواهند استفاده مورد دلفي نويس برنامه توسط برنامه ميتوان ،ADO اجزاي از استفاده با ندارد. وجود اختصاصي اجزاي

. در باشند نداشتهBDE به وابستگي هيچ كه كرد ايجاد اي داده پايگاه هاي BDE بر مبتني اجزاي با آنها تفاوت و ADOاجزاي تشريح به بخش اين

. پرداخت خواهيمADO براجزاي اجمالي نگاهي

ADOبا كاركردن براي نيز را اجزائي ، BDE بر مبتني اجزاي بر عالوه دلفي

هاي داده منبع به اجزا، اين از استفاده با توانيد . مي است اورده وجود بهADO ها داده و نموده اجرا را نظرتان مورد فرامين سپس ، شويد متصل

. نمائيد واكشي ها داده پايگاه درون جداول از را از ، آنها روي عمليات انجام و ها داده منبع به دسترسي براي ADOاجزاي نسخه ADOبايد اما داشت نخواهيدBDE و ميكنند استفاده ADO اصلي قالب باشيد. نموده نصب ميزبان كامپيوتر روي را جديدتري نسخه ويا1/2

نظير اي داده پايگاه سيستم از كه صورتي در همچنينMicrosoft SQL Sreverاي گيرنده سرويس افزار نرم . بايد نمائيد استفاده

مورد اي داده پايگاه سيستم خاصODBC درايور ياOLEDB درايور نظيرنمائيد. رانصب نظرتان

BDEبر مبتني اجزاي از يكي با مقايسه قابل و مشابه ADO اجزاي اغلب جز با مشابه ، قابليت حيث از TDOConnection . جز باشند مي

TDatabase بر مبتني هاي برنامه به مربوط BDE است .TADOTable . استTstoredproc با معادلTTable ، TADOStoredproc با معادل

TADODataSetدر معادلي داراي BDEاز بسياري اما باشد، نمي جزء هيچ . همچنين كند مي عرضه راTQuery وTTable با مشابه قابليتهاي

ندارد. وجودTADOcommand با مقايسه قابل

: است شده پرداخته ADO اجزاء تشريح به زير جدول در شرحجزء

Page 3: ADO

TADOConnection قرارميگيرد استفاده مورد ها داده منبع با اتصال ايجاد براي

، فرامين اجراي براي اتصال اين ازADO اجزاي . اغلب مي استفاده ها داده روي عمليات انجام و ها داده واكشي

كنند.

TADODataSet

روي عمليات انجام و ها داده واكشي براي جزء اين از داده واكشي قابليت جزء . اين شود مي استفاده ها داده

جز اين همچنين ، ميباشد دارا را جدول چند يا يك از ها جز طريق از يا و مستقيم صورت به ميتواند

TADOConnectionگردد. مي متصل داده منبع به

TADOTable روي عمليات انجام و ها داده واكشي براي جزء اين از

داده واكشي قابليت ء جز . اين شود مي استفاده دادهها ميتواند جزء اين . همچنين باشد مي دارا را جدول يك هاي

به TADO connection جزء طريق از يا مستقيم صورت به. شود متصل ها داده منبع

TADOQuery هائي داده روي عمليات انجام و واكشي براي جزء اين از

شده تهيه معتبرSQL عبارت طريق از كه ميشود استفاده به مربوطDDL 1 عبارت اجراي قابليت جزء . اين باشند

SQLنظير ) create tableجزء اين . همچنين ميباشد دارا ) را جزء ازطريق يا و مستقيم صورت به ميتواند

TADOConnection شود متصل ها داده منبع به .

TADOStoredProc Stored( شده ذخيره روالهاي اجراي براي جزء اين

Procedureاجراي قابليت جزء . اين شود مي )استفاده واكشي براي كه باشد دارامي را اي شده ذخيره روالهاي

همچنين ، اند آمده وجود بهDDL عبارات اجراي يا ها داده جز طريق ويااز مستقيم صورت به تواند مي جزء اين

TADOConnection شود متصل ها داده منبع به .

TADOCommand فاقد )كه SQL ( عبارات فرامين اجراي براي جزء اين از

جزء . اين شود مي استفاده باشند بازگشتي نتايج مجموعه اين . همچنين باشد مي دارا نيز را ها داده واكشي قابليت

جزء طريق از ويا مستقيم صورت به تواند مي جزءTADOConnection شود متصل ها داده منبع به

ADO هاي داده منبع به شدن متصل

اينكه يا و كرده واكشي را هايي داده بتواند برنامه يك اينكه از قبل ADO كند. اجزاي برقرار اتصال ها داده منبع با بايد نمايد، اجرا را فراميني

به اينكه يا و شوند متصل ها داده منبع به مستقيم صورت به ميتوانند استفادهTADOConnetction جز توسط شده ايجاد اتصال از مشترك صورت

Page 4: ADO

خود خاص معايب و مزايا داراي شده ذكر روشهاي از يك نمايند. هرميباشند.

: پرداخت خواهيم زير موارد تشريح به ادامه در از استفاده با ها داده منبع به شدن متصل TADOConnetction

اتصال سازي بهينهبا شده مرتبط اجزاي از ليستي دريافت TADOConnection

تراكنش )Transaction(

TADOConnetction از استفاده با ها داده منبع به شدن متصل

جز چند يا يك نمودن متصل براي اشتراكي اتصال يك طريق از ميتوانيدADOداراي برنامه بايد منظور اين نماييد. براي استفاده ها داده منبع به

برنامهADO اجزاي ديگر ميتوانيد باشد. سپسTADOConnetion جز يك مرتبطTADOConnetion جز بهConnetion خاصيت طريق از را تان

قابليت كه است متدهايي و خواص دارايTADOConnetion نماييد. جز Connetion شي به مستقيم دسترسي اتصال، نمودن غيرفعال و فعال

راTADOConnetion جز فعاليت نوع نمودن مشخص وADO به مربوطميدهد. قرار اختيار در: پرداخت خواهيم زير موارد تشريح به ادامه در

از استفاده TADOConnetionخاصيت جاي به ConnectionString

اتصال تعيينشي به دسترسي Connection

اتصال نمودن غيرفعال و فعالجز توسط كه فعاليتي نوع نمودن مشخص TADOConnection در

است. انجام حال

ConnectionString خاصيت جاي بهTADOConnection از استفاده

شود. در متصل ها داده منبع به مستقيم صورت به ميتواند ADO جز هر كه شد خواهيد متوجه باشد داشتهADO جز چند شما برنامه كه صورتي

اين گذاشتن اشتراك به وTADOConnection طريق از اتصال يك ايجاد اطالعات كسب بود. براي خواهد تر ساده بسيار اجزا ديگر براي اتصال متصل قسمت به ها داده منبع به مستقيم اتصال با رابطه در بيشتر داشته نماييد. توجه مراجعه مستقيم صورت به ها داده منبع به شدن داده منبع با اتصال ايجاد برايTADOConnection جز از استفاده كه باشيد

نظر مورد اتصال روي بر بيشتري كنترل بتوانيم تا شد خواهد باعث ها انفرادي صورت بهADO اجزاي از هريك نمودن متصل باشيم. اما داشته

Page 5: ADO

و متدها خواص، دارايTADOConnection داشت. جز نخواهد را مزيت اين روي بيشتري كنترل ميتوانيد آنها از استفاده با كه است رويدادهايي

باشيد. داشته نظر مورد اتصال

اتصال تعيين گذاشتن اشتراك به برايTADOConnection جز يك از بتوانيد اينكه براي

اوريد. براي وجود به را اتصال يك ابتدا بايد نماييد استفاده اتصال يك خاصيت درون را مربوطه اتصال خاص اطالعات بايد عمل اين انجام

ConnectionStringجز به مربوط TADOConnectionدر دهيد. ميتوانيد قرار مبوط مقدار ستون درون كه اي دكمه روي نمودن كليك با طراحي زمان

ويرايشگر تا شويد باعث دارد وجودConnectionString خاصيت بهConnectionStringگردد. ظاهر

اتصال) تعيين (شكل

اجازه شما به و يدآ مي وجود بهADO سيستم توسط ويرايشگر اين (نظير اتصال عناصر انتخاب با و تعاملي صورت به بتوانيد تا ميدهد

Providerو Serverشويد. همچنين اتصال ايجاد باعث ليست، درون ) از اي رشته مقدار يك با راConnectionString خاصيت اجرا زمان در ميتوانيد

نمودن نماييد. تنظيم مقداردهي باشد، اتصال خاص اطالعات شامل كه اتصال نمودن فعال باعث ميتواندTrue مقدار باConnected خاصيت

اتصال نمودن فعال باعث هميشه عمل اين كه باشيد داشته شود.توجه صورت به را اتصال خاص اطالعات است ممكن كه شد. چرا نخواهد مشابه عبارتي از ميتوانيد اجرا زمان باشيد. در نكرده مقداردهي صحيحنماييد: برقرار را اتصال و نموده استفاده زير عبارت

ADOConnection1.ConnectionString:=’Provider=providername;Remote Server=server refrence’;

اتصال پارامترهاي از تعدادي شامل ميتواندConnectionString خاصيت پارامترها باشند. اين شده جدا يكديگر از; عالمت از استفاده با كه باشد

Page 6: ADO

شناسه به ارجاع و عبور كلمه كاربر، نامProvider نام شامل ميتوانند ميتواندConnectionString خاصيت باشند. همچنين دور راه دهنده سرويس

ميشود. محتويات شامل را اتصال پارامترهاي كه باشد فايلي نام شامل و بود خواهدConnection String خاصيت محتويات با مشابه نيز فايل اين

مجزا صورت به يك هر كه باشد پارامتر چند يا يك شامل ميتواندگردند. جدا يكديگر از; عالمت از استفاده با و باشند شده مقداردهي

مشخصTADOConnection جز براي را اتصال اطالعات كه صورتي در مرتبط TADOConnection جز با راADO اجزاي ديگر ميتوانيد حال ايد نموده

اجزاي از يك هرConnection خاصيت بايد عمل اين انجام نماييد. برايADOجز نام با را TADOConnectionطراحي زمان نماييد. در مقداردهي

درون كه ليستي طريق از و Object Inspector پنجره درون از ميتوان انتخاب به نسبت دارد، قرارConnection خاصيت به مربوط مقدار ستون

در ميتوانيد . همچنيننمود اقدام خود نظر موردTADOConnection جز مثال نماييد. براي مقداردهي را Connection خاصيت نيز اجرا زمان

جز يك باTADODataSet جز يك نمودن مرتبط باعث زير دستورTADOConnectionشد. خواهد

ADODataSet1.Connection:=ADOConnection1;

نسبتConnected خاصيت مقداردهي با صريح صورت به كه صورتي در به عمل اين تا شد خواهيد باعث نكنيد، اقدام اتصال نمودن فعال به

فعال بخواهدDataSet جز يك كه بگيرد صورت زماني در خودكار صورتگردد. اجرا بخواهدCommand جز يك اينكه يا و شود

Connection شي به دسترسي ميتوانTADOConnection جز به مربوطConnectionObject خاصيت از

كرد. استفادهADO به مربوطConnection شي به مستقيم دسترسي براي Connection شي متدهاي و خواص به ميتوانيد ارجاع اين از استفاده با

نماييد. پيدا دسترسيADO به مربوط برايConnectionObject خاصيت از استفاده كه باشيد داشته توجه

دانش به نيازADO به مربوطConnection شي به مستقيم دسترسي در خاصي دانش به نياز همچنين وADO اشياي با كاركردن زمينه در بااليي دارد.ADO به مربوطConnection شي با رابطه

اتصال نمودن فعال غير و فعال خاصيت از اتصال نمودن فعال براي ميتوانيد

TADOConnection.Connectedمتد از يا و TADOConnection.Open نماييد. استفاده

ADOConnection1.Connected:=True;ADOConnection1.Open;

Page 7: ADO

اطالعات بايد پذيرد انجام اميز موفقيت صورت به بتواند اتصال اينكه براي مشخصTADOConnection.ConnectionString خاصيت درون كه اتصال خاص بيشتر اطالعات كسب شوند. براي معتبر اتصال يك تعريف باعث اند، شده

اتصال تعيين قسمت به اتصال، خاص اطالعات نمودن مشخص با رابطه در TADOConnection جز نمودن فعال كه باشيد داشته نماييد. توجه مراجعه

OnConnectCompelete وOnWillConnect رويدادهاي دادن رخ باعث ميتواند

اين از يك هر به رويدادي كننده كنترل كه صورتي در همچنين و شود شد. در خواهد نيز آنها اجراي باعث عمل اين باشد شده مرتبط رويدادها در تا شد خواهد باعث باشد نشده فعالTADOConnection جز كه صورتي عمل شوند فعال بخواهند نآ با مرتبطADO اجزاي از يك هر كه صورتي

اجزاي پذيرد صورت خودكار صورت به نيزTADOConnection جز سازي فعالDataSetاجزاي و شدن فعال با Command اين بروز باعث شدن، اجرا با

نمودن مرتبط با رابطه در بيشتر اطالعات كسب ميشوند. براي عمل ها داده منبع به شدن "متصل قسمت بهTADOConnection جز باADO اجزاي

نماييد. " مراجعهTADOConnection از استفاده با خاصيت از ميتوانيد نيز اتصال نمودن غيرفعال براي

TADOConnection.Connectedمتد از يا و TADOConnection.Closeاستفاده نماييد.

ADOConnection1.Connected:=False;ADOConnection1.Close;

صورت زير عمل چهار ميشود، غيرفعالTADOConnection جز يك كه زماني: ميگيرد

داد. خواهد رخTADOConnection.OnDisconnect رويداد-1 شد خواهد اجراTADOConnection.OnDisconnect رويداد كننده كنترل-2

وجود). صورت (درميشود. غيرفعالTADOConnection جز-3ميشوند. غيرفعالTADOConnection جز با مرتبطADO اجزاي كليه-4

درTADOConnection جز توسط كه فعاليتي نوع نمودن مشخصاست انجام حال

جز به مربوطState خاصيت بررسي با هرلحظه در ميتوانيدTADOConnectionوجود) ( درصورت است انجام درحال كه فعاليتي نوع به

. ببريد پي و استTObjectStates ازنوعTADOConnection جز به مربوطState خاصيت: باشد زير مقادير از يكي شامل ميتواند مفهوم مقدار

StClosedجز TADOConnection ها داده پايگاه به و است فعال غير . خاصيت نيست متصل

Page 8: ADO

TADOconnection.Connectedمقدار داراي Falseكليه است . هستند. فعال غيرTADOConnectin با مرتبطADO اجزاي

StOpenجز TADOConnectinمتصل ها داده پايگاه به و است فعال . خاصيت است

TADOconnection.Connectedمقدار داراي Trueاجزاي است . ADOبا مرتبط

TADOconnectioباشند. فعال است ممكنStConnecti

ng هايي داده منبع با اتصال ايجاد حال درTADOconnection جز

TADOconnection.ConnectionString خاصيت درون كه است

بافراخواني ميتوانيد وضعيت . دراين است شده مشخصCancelگرديد. عمليات لغو باعث

StExecutingجز TADOconnectionاست. فرمان اجراي حال درStFetchingجز TADOconnectionداده پايگاه از ها داده واكشي حال در

هاست.

اتصال سازي بهينه استفاده ها داده منبع به اتصال برايTADOconnection جز از كه زماني

اتصال وضعيتهاي و صفات روي بيشتري تاكنترل ميشويد مينمائيد. باعث جز ورويدادهاي خواص طريق از را كنترل اين باشيد. ميتوانيد داشته

TADOconnectionنماييد اعمال .: پرداخت خواهيم زير موارد تشريح به ادامه در

اتصال صفات تعيين نمودن كنترل Timeoutها نمودن كنترل Logonاتصال به مربوط

اتصال صفات تعيين براي TADOconnection.ConnectOption خاصيت از ميتوان اختياري بصورت

خاصيت فرض پيش صورت كرد. به استفاده اتصال نمودن همزمان غيرConnectOption مقدار با coConnectUnspcifiedسرويس به و شده تنظيم

نمايد. براي تعيين را اتصال نوع بهترين تا ميدهد ) اجازهServer( دهنده خاصيت بايد شود، همزمان غير اتصال تا شويد باعث صراحت با اينكه

ConnectedOption بامقدار را coAsyncConnectنمائيد. تنظيم به انتخاب واگذاري يا همزمان غير بصورت اتصال نمودن تنظيم براي

مقادير از بايكي را ConnectOption خاصيت ) بايدServer( دهنده سرويسcoAsyncConnectيا coConnectUnspecifiedجز . سپس نمائيد تنظيم TADOConnectionمتد فراخواني با را Openنمود. خاصيت تنظيم Connected

نمائيد فعال باان مرتبطADO اجزاي از يكي نمودن فعال يا وTrue مقدار با .

Page 9: ADO

begin with Adoconnection1 do begin close connectoptions:=coansyncConnect; Open; End;End;

: شود مي اتصال بودن همزمان غير باعث زير رويداد كننده كنترلbegin with ADOConnection1 do begin close: connectOptions:=coconnectunspecified; open; end;end;

نكته( دهنده سرويس كه بود مفيدخواهد زماني در اتصال نمودن همزمان غير

Serverنباشد. مناسبي سرعت داراي استفاده، ) مورد

رفتار تعيين برايTADOConnection.Attributes خاصيت از ميتوانيد همچنين تراكنش

)transactionمقدار داراي ميتواند خاصيت . اين نمائيد ) استفاده xaCommitRetaining ، xaAbortRetaining، از كدام ياهيچ و مقدار دو هر

. باشد مقادير به راxaCommitRetaining مقدار زير رويداد كننده كنترل مثال براي

: مينمايد اضافهAttributes خاصيتprocedure tform1.RetainingCommitsOnButtonClic( sender: tobject);begin with ADOConnection1 do begin close; if not ( xaCommitRetaining in Attributes) then Attributes:=( attribute+ [xaCommitRetaining]) open ; end;end;

Page 10: ADO

از راxaCommitsRetaining مقدار زير رويداد كننده كنترل همچنينAttributes خاصيت

: مينمايد كمprocedure tform1.RetainingCommitsOnButtonClic( sender: tobject);begin with ADOConnection1 do begin close; if not ( xaCommitRetaining in Attributes) then Attributes:=( attribute - [xaCommitRetaining]) open ; end;end;

هاTimeout نمودن كنترل وTADOConnection.ConnectionTimeout خواص از استفاده با

TADOConnection.CommandTimeoutدونوع Timeout نمائيد. راكنترل عمل كه مينمايد مشخص را زماني مقدارConnection Timeout خاصيت بگيرد. صورت زمان مدت آن در حداكثر بايد ها داده منبع به شدن متصل نتواند عمل اين و شود فراخوانيOpen متد كه صورتي در مثال براي

. مقدار شد خواهد لغو عمل اين گردد، كامل شده تعيين زمان درمدت زير كد مثال . براي است ثانيه برحسبconnectionTimeout خاصيت: مينمايد تنظيم ثانيه10 مقدار با راConnectionTimeout خاصيت

with adoconnection1 do begin connectionTimeout:= 10 { seconds} open;end;

عمل كه نمايد مي رامشخص زماني مدتCommandTimeout خاصيت مثال . براي بگيرد صورت مدت زمان آن در حداكثر بايد فرامين اجراي

مدت در نتواند عمل اين و شود فراخوانيExecute متد كه درصورتي( استثنا يكado و شد خواهد لغو عمل اين ، شود كامل شده تعيين زمان

Exceptionخاصيت . مقدار نمود خواهد پا بر ) را CommandTimeout را CommandTimeout خاصيت زير كد مثال . براي است ثانيه برحسب: مينمايد تنظيم10 بامقدار

with ADOConnection1 do begin commandTimeout := 10 { secound} ; Execute( ‘ DROP TABLE Employee1997’,[ ]);End;

Page 11: ADO

اتصال به مربوط Login نمودن كنترل ها داده منبع با اتصال ايجاد در سعي TADOConnection جز كه زماني پنجره شدن داد. ظاهر خواهد رخOnLogin امنيتي رويداد ، باشد داشته

. است OnLogin رويداد دادن رخ عاليم از يكي ، Login اي محاوره . كند مي رادريافت عبور وكلمه كاربر نام ، Login اي محاوره پنجره

كاربر . ونام شويد Login اي محاوره پنجره نمايش مانع ميتوانيد همچنين مانع اينكه . براي نمائيد مشخص خود برنامه وسيله رابه عبور كلمه و

LoginPrompt خاصيت ابتدا بايد شويد Login اي محاوره پنجره نمايش . سپس نمائيد تنظيمFalse بامقدار را TADOConnection جز به مربوط

خاصيت نمودن تنظيم به اقدام ،TADOConnection جز كردن فعال از قبل باشيد داشته . توجه نمائيدTADOConnection.ConnectionString خاصيت

خاصيت درون بايد نيز راLogin به مربوط اطالعات كهTADOConnection.ConnectionStringدهيد قرار .

: فرمائيد توجه زير كد به مثال برايwith ADOConnection1 do begin close; LoginPrompt:=False; ConnectionString:=’provider:=nameOfYourProvider; Rimote Server=NameOfYourServer;’ Open( ‘mohammad’,’SecretWord’);End;

متد به پارامتر عنوان به راLogin به مربوط اطالعات ميتوانيد همچنينOpenنمائيد توجه زير مثال . به نمائيد ارسال :

with ADOConnection1 do begin Close;LoginPrompt:=False;ConnectionString:=’provider=NameOfYourProvider;RemoteServer’;Open(‘mohammad’,’SecretWord’);End;

. است برابر شده ذكر كد اولين باعملكرد شد ذكر كه كدي دومين عملكرد عبور كلمه و كاربر نام ، شده ذكر كد دومين در كه است دراين تفاوت تنها

عنوان به و نشده داده قرارConnectionString خاصيت درون ، مربوطه كه ميباشد مفيد زماني روش . اين است شده ارسالOpen متد به پارامتر

يكسان كاربران تمام ) برايProvider,Server ( نظير اتصال خصوصيات ميتواند برنامه لانمايد. ح تغيير كاربر هر انفرادي اطالعات فقط و باشد

مربوط كه خاصي اي محاوره پنجره طريق از را كاربران انفرادي اطالعات. نمايد دريافت ، ميباشد آن

Page 12: ADO

نكته ودر نماييد تنظيم خود برنامه ازطريق راLogin اطالعات كه صورتي در

يك شدتا خواهيد باعث شويد، رو روبه موفقيت باعدمLogin عمل انجامگردد. برپاEOleException نوع از استثنا

TADOConnection با شده مرتبط اجزاي از ليستي دريافت به آنها طريق از ميتوانيد كه است خواصي دارايTADOConnection جز

و ) موجودStoredProcedures( شده ذخيره روالهاي و جداول از ليستي جز . همچنين نمائيد پيدا دسترسيTADOConnection جز با مرتبط

TADOConnectionديگر به آنها طريق از ميتوانيد كه است خواصي داراي يابيد. دسترسيTADOConnection با مرتبط ADOاجزا

: پرداخت خواهيم زير موارد تشريح به درادامهبه دسترسي datasetباجز مرتبط هاي TADOConnectionبه دسترسي commandباجز مرتبط هاي TADOConnectionموجود جداول از ليستي دريافت موجود شده ذخيره روالهاي از ليستي دريافت

TADOConnection جز با مرتبط هايDataset به دسترسي صورت به ،DataSetCount وDataset خواص از استفاده با ميتوانيد TADOConnectionباجز مرتبطdataset اجزاي از هريك به ترتيبي

وDataset خواص طريق از كه هاييdataset. پيدانمائيد دسترسيDataSetCountاز عبارتند ميباشند دسترسي قابل TADODatasetو

TADOStoredProcبا كاركردن . براي Commandبا مرتبط هاي TADOConnectionخواص از Commandو CommandCountاستفاده

. نمائيد Datasetنوع از اجزاي به ارجاعات از اي ارايه Datasetميتوانيد است .

نظرتان مورد هايDstaSet به ، آرايه اين هاي انديس به بادسترسي به ،3 شماره انديس به بادسترسي مثال . براي پيدانمائيد دسترسي پيدا دسترسيTADOConnection جز با مرتبطDataset جز چهارمين

: نمود خواهيدShowMessage(ADOConnection.DataSet[3 ].name);

. ميتوان استTCustomADODataSet نوع ازDataset خاصيت ارجاعات نوعهاي به را ارجاعات اين )،typecast( نوع تبديل عمل از بااستفاده و خواص به سپس و كرده تبديلTCustomADODataSet از شده منشعب TCustomADODataSet نوع مثال . برايودپيدانم دسترسي آنها متدهاي

Page 13: ADO

منشعب آن از كهTADOStoredproc نوع اما ، استSQL فاقدخاصيت خاصيت به دسترسي براي . لذا ميباشد خاصيت اين داراي است شدهSQLبه مربوط DataSetخاصيت از شده داده ارجاع DataSet، به نياز : داشت ) خواهيدTypeCast( نوع تبديل عمل

with ( ADOConnection1 . DataSet[0] as TADOStoredProc ) do begin SQL.Clear; SQL.Add(‘SELECT * FROM Students’); Open;End;

جز با مرتبط هايdataset كليه تعداد ،DataSetCount خاصيتTADOConnectionخاصيت اين نمودن تركيب با يتوانيدم. ميشود شامل را

هايdataset كليه به ترتيبي صورت به ،DataSets خاصيت و حلقه يك ،: پيدانمائيد دسترسيTADOConnection جز با مرتبط

varI:integer;BeginFor I:=1 to (ADOConnection4.dataSetCount) do Adoconnection4.datasets[i].Open;End;

TADOConnection جز با مرتبط هايCommand به دسترسي خواص با مشابه عملكرد دارايCommandCount وCommand خواص

DataSetو CommandCountاجزاي تمام به كه ميباشند ارجاعاتي داراي TADOCommandبه مرتبط TADOConnectionبراي مينمايد اشاره .

DataSet خواص از ،TADOConnection با مرتبط هايdataset با كاركردننمائيد. استفادهDataSetCount و

Commandsنوع از اجزاي به ارجاعات از اي آرايه Commandاست . هايCommand به ، آرايه اين هاي انديس به دسترسي با ميتوانيد

انديس به دسترسي با مثال . براي نمائيد پيدا دسترسي موردنظرتان TADOConnection جز با مرتبطcommand جز دومين به ،1 شماره

: نمود خواهيد پيدا دسترسيMemo1.Lines.Text:=ADOConnection1.Command[1].CommandText;

جز با مرتبط هايCommand كليه تعداد ،CommandCount خاصيتTADOConnectionخاصيت اين نمودن تركيب با . ميتوانيد ميشود شامل را

كليه به ترتيبي صورتي به ،Commands خاصيت و حلقه يك باCommandجز با مرتبط هاي TADOConnectionپيدانمائيد دسترسي :

varI:integer

Begin

Page 14: ADO

For I:= 0 to (ADOConnection1.CommandCount) do ADOConnection1.Commands[i].Execute;End;

موجود جداول از ليستي دريافت در موجود جداول از ليستي دريافت برايGetTableNames متد ميتوانيداز

اسامي متد نمائيد. اين استفادهTADOConnection با مرتبط داده پايگاه: ميدهد قرارTStrings شي درون را موجود جداول

TADOConnection1.GetTableNames( ListBox1.Items,False); مي پرداخته است جداول اسامي شامل كه ليستي پيمايش به زير مثال در

جداول از هريك ركوردهاي تعداد و نام تا ميشود باعث زير . مثال شودگردد: ذخيره ديگري جدول درون ركورد يك عنوان به ، ليست در موجود

PROCEDURE Tform1.button1Click( Sender:Tobject);VarSL: Tstrings;Index:Integer;Begin Sl := TstingList.Create; Try ADOConnection1.GetTableNames(SL,False); For index:=0 to ( SL.Count-1) do Begin Table1.insert; Table.fieldByName(‘Name’).AsString:=SL[index]; ADOTable1.Open; Table1.FieldByName(‘Records’).AsInteger:=ADOTable1.RecordCount; Table1.Post; End;Finally SL.Free; ADOTable1.Close; End;End;

موجود شده ذخيره روالهاي از ليستي دريافت روالهاي از ليستي دريافت برايGetProcedureNames متد از ميتوانيد استفادهTADOConnection با مرتبط ها داده پايگاه در موجود شده ذخيره TString شي درون را موجود شده ذخيره روالهاي اسامي متد . اين نمائيد: ميدهد قرار

TADOConnection1.GetProcedureNames(ListBox1.Items);

Page 15: ADO

شده پرداخته داده پايگاه در شده ذخيره روالهاي كليه اجراي به زير درمثال: است

procedure TdataForm.ExecuteProcsButtonClik(Sender:TObject);var sl:Tstrings; index:integer;begin sl:=tstringlist.create; Try Adoconnection1.GetprocedureNames(SL); If (sl.count>0) Then for index:=0 to ( sl.count-1) do Begin Adostoredproc1.procedurename:=SL[index]; Adostoredproc1.Execproc; End;Finally Sl.free; End;End;

(Transaction) تراكنش از استفاده قابليت كه است رويدادهائي و متدها داراي Transaction جز

( تراكنش . قابليت اورند مي بوجود )راTransaction( تراكنشTransactionاجزا كليه ) براي ADOجز با مرتبط TADOConnectionبه

. ميشود گذاشته اشتراك: پرداخت خواهيم زير موارد تشريح به درادامه

تراكنش متدهاي از استفاده تراكنش رويدادهاي از استفاده

تراكنش متدهاي از استفاده اعمال براي ميتوانBeginTrans,CommitTrans,RollbackTrans متدهاي از

شروع باعثBeginTrans . متد كرد )استفادهTransaction( تراكنش . متد شود ميTADOConnection با مرتبط داده پايگاه در تراكنش عمل

CommitTransبه دادن پايان و داده پايگاه در تغييرات شدن ذخيره باعث تاتغييراتي ميشود باعثRollbackTrans ميگردد. متد جاري تراكنش عمل

به و شوند گرفته ناديده ، اند گرفته صورت تراكنش عمل طول در كه خاصيت از هرزماني در . ميتوانيد دهد مي خاتمه جاري تراكنش عمل

InTransactionببريد پي تراكنش عمل بودن فعال به و نمائيد استفاده .

Page 16: ADO

تراكنش رويدادهاي از استفاده به آنها طريق از ميتوانيد كه است رويدادهايي دارايTADOConnectionجز

. اين ببريد پي تراكنش با مرتبط هاي پردازش از هريك شدن تكميل BeginTrans متدهاي با مرتبط هاي پردازش كه مينمايند مشخص رويدادها

اند رسيده پايان به موفقيت با زماني چهCommitTrans, RollbackTrans و .

BeginTrans متد كه داد خواهد رخ زمانيonBeginTransComplete رويداد . رويداد باشد شده تراكنش عمل شروع باعث موفقيت با

OnCommitTransCompleteمتد كه داد خواهد رخ زماني CommitTrans OnRollbackTransComplete رويداد باشد. همچنين يافته خاتمه باموفقيت

. باشد يافته خاتمه باموفقيتRollbackTrans متد كه داد خواهد رخ زماني

ADO هايDataset از استفاده به مربوطdataset اجزاي به شبيه بسيارADO به مربوطDataset اجزاي

BDE1جزء مثال . براي هستند TADOTableجز با معادل قابليتهايي داراي TTableاجزاي كه است دراين اصلي ميباشد. تفاوت ADOاشياي از ADOبراي

. ندارند وابستگيBDE به و نمايند مي استفاده ها داده به دسترسيDatasetهاي ADOبر مبتني اجزاي و BDEميباشند مشتركي وجه داراي

و متدها خواص دليل همين . به استTdataset كالس مشترك وجه اين كه بيشتر اطالعات كسب دارد. براي وجود آنها همه در مشتركي رويدادهاي

مراجعه قبلي قسمتهاي به اجزا اين ميان مشترك قابليتهاي با رابطه در. نمائيد وجودADO هايDataSet در كه خاصي قابليتهاي تشريح به بخش دراينپرداخت. خواهيم دارند

شد: خواهد پرداخته مواردزير تشريح به درادامهاز استفاده TADODatasetاز استفاده TADOTableاز استفاده TADOQueryاز استفاده TADOStoredProc

TADODataset از استفاده درون هاي داده به بتوانيد تا سازد مي قادر را شماTADODataset جز

داشته قرار اي داده پايگاه درون كه نمائيد پيدا دستيابي جداولي يا جدول از باشيد. ميتوانيد نموده پيدا دسترسي آن بهADO طريق از كه باشند جداول بهTADODataset جز به مربوطCommandText خاصيت طريق

. نمائيد پيدا دسترسي

11 – Borland Database Engine

Page 17: ADO

بايد نمائيد، متصل ها داده بامنبع راTADODataset جز بتوانيد اينكه براي استفاده مورد راConnection ياConnectionstring خواص از يكي

. قراردهيد هائي داده همانندTADODataset جز توسط شده تهيه هاي داده از ميتوانيد

اين . به شوند مي تهيهBDE بر مبتني اجزاي طريق از كه نمائيد رفتار بانام راTdataSource جز به مربوطDataset خاصيت ميتوانيد كه معني

با را داده با مرتبط كنترلهاي سپس و نمائيد تنظيمTADODataSet جزTdatasourceنمائيد مرتبط .

اي داده اجزاي با مشابه نيزTADODataset جز ركوردهاي راهبري از شده برده ارث به متدهاي از ميتوانيد كه معني اين . به است استاندارد

گر اشاره نمودن جابجا برايPrior وFirst,Next,Last نظيرTdataSet جد نيز برنامه طريق از ها داده دستكاري . همچنين نمائيد استفاده ركورد برده ارث به . متدهاي ميگيرد صورت استاندارد دادهاي اجزاي با مشابه

درTADODataset جز تا شوند مي باعثEdit وInsert نظير اي شده . براي گردد مي تغييرات ثبت باعثPost . متد گيرد قرار ويرايشي حالت مراجعه زير قسمتهاي به فوق مطالب با رابطه در بيشتر اطالعات كسبنمائيد:

از استفاده با ها داده منبع به شدن متصل TADOConnection داده با مرتبط بصري كنترلهاي از استفاده راهبري Datasetها ها داده دستكاري در مشترك قابليتهاي datasetهاي ADO

خواهيمفرمان" از استفاده با ها داده واكشي" تشريح به درادامهپرداخت.

فرمان از استفاده با ها داده واكشي آن نام از بااستفاده را جدول يك هاي داده ميتواندTADODataset جز

عبارت يك از بااستفاده تواند مي جزء اين . همچنين نمايد واكشي جدولSQL،توجه نمايد جدول چند يا يك از ها داده واكشي به اقدام معتبر .

. شد خواهد اجرا فرمان يك دوحالت، هر در كه باشيد داشته CommandText خاصيت درون راSQL عبارت يا جدول نام ميتوانيد

پنجره از ميتوان ، طراحي . درزمان نمائيد فعال را جز و قراردهيدEditor CommandTextظاهر كرد. براي استفاده فرمان ايجاد براي

مقدار ستون رويObjectInspector طريق از پنجره اين نمودن) Valueمربوط ( خاصيت به CommandText، كليك دوبار )duble

Page 18: ADO

clickخاصيت به را رشته يك اجرا زمان در ميتوانيد . همچنين ) نمائيد CommandTextدهيد نسبت :

ADODataset1.CommandTexet : = select * from customer;

مورد فرمان نوع نمودن مشخص براي ميتوانcommandType خاصيت از نموده استفاده جدول نام از فرمان براي كه كرد. درصورتي استفاده اجرا

. نمائيد مقداردهيcmdTable با راcoimmandType خاصيت ، ايد ايد نموده استفاده فرمان عنوان بهSQL عبارت ازيك كه درصورتي

نوع اگر .همچنين نمائيد مقداردهيcmdTextبا راcommandType خاصيت با راcommandType خاصيت ،ميتوانيد باشد نامشخص فرمان

cmdUnKnownطريق از طراحي زمان در . ميتوانيد نمائيد مقداردهي به اقدام دارد، وجودcommandType خاصيت مقدار ستون در كه ليستي اقدام اجرا زمان در ميتوانيد . همچنين نمائيد نظرتان مورد مقدار انتخاب

: نمائيد خاصيت اين مقداردهي بهADODataSet1.CommandType:=cmdText;

مقدار باActive خاصيت مقداردهي يا وOpen متد از استفاده با ميتوانيدTrueجز نمودن فعال باعث ADODataSetشويد :

with adodataset do begin connection:=adoconnection1; commandtype:=cmdtext;

Page 19: ADO

commandtext:=’select*from customer’; Open;End;

TADOTable از استفاده از يكي هاي داده به بتوانيد تا سازد مي قادر را شماTADOTable جز

را نظر مورد جدول . نام نمائيد پيدا دسترسي ها داده پايگاه جداول. نمائيد مشخصTableName خاصيت درون ، نمائيد متصل ها داده پايگاه با را TADOTable جز بتوانيد اينكه براي استفاده مورد راconnection ياConnectionString خواص از يكي بايد

. قراردهيد با همانندTADOTable جز توسط شده تهيه هاي داده از ميتوانيد شما . به ميشوند تهيهBDE بر مبتني اجزا طريق از كه كنيد رفتار هايي داده راTDataSource جز به مربوطDataset خاصيت ميتوانيد كه معني اين

را داده با مرتبط كنترلهاي سپس و نمائيد تنظيمTADOTable جز بانام. نمائيد مرتبطTDataSource باجز

هاي داده اجزاي با مشابه نيزTADOTable جز ركوردهاي راهبري شده برده ارث به متدهاي از ميتوانيد كه معني اين . به است استاندارد

اشاره نمودن جابجا برايPrior وFirst,Next,Last نظيرTDataSet جد از. نمائيد استفاده ركورد گر

اي داده اجزاي با مشابه نيز برنامه طريق از ها داده دستكاري همچنين. ميگيرد صورت استاندارد

تاجز شوند مي باعثInsert,Edit نظير اي شده برده ارث به متدهايTADOTableمتد گيرد قرار ويرايشي درحالت . Postتغييرات ثبت باعث

ميگردد. : پرداخت خواهيم زير مورد تشريح به ادامه در

جدول تعيين

جدول تعيين اين باشد، برقرار ها داده بامنبعTADOTable جز اتصال كه صورتي در نام نمايد. ميتوانيد پيدا دسترسي داده پايگاه درون جداول به ميتواند جز

كه دهيد. زماني قرار TADOTable خاصيت درون را نظرتان مورد جدول TADOTable طريق از آن هاي داده و جدول ميشود فعال مربوطه جدول

ميگيرد. قرار شما دسترس در ، باشد شده متصل ها داده بامنبعTADOConnection جز كه صورتي در

مقدار ستون درون كه جداولي ليست طريق از طراحي، زمان در ميتوانيد نمائيد. همچنين جدول نام انتخاب به اقدام قراردارند،TableName خاصيت: دهيد نسبتTableName خاصيت به را رشته يك اجرا زمان در ميتوانيد

Page 20: ADO

ADOTable.TableName := ‘Oders’;

داده منبع به شدن متصل برايTADOConnection جز از كه صورتي در GetTableNames متد از استفاده با ميتوانيد ، ايد نموده استفاده ها

نمائيد. موجود جداول از ليستي واكشي به اقدام يك درون جداول اسامي تا شود مي باعث زير روال اولين مثال براي براي رويداد كننده كنترل يك ، روال شوند. دومين داده قرار ليست جعبه

رويداد كننده كنترل . اين است ليست جعبه به مربوطOnClick رويداد خاصيت به ، ليست جعبه از شده انتخاب جدول نام تا ميشود باعث

TableNameجز يك TADOTableشود داده نسبت :

procedure tform1.listtablesbuttonclick( sender: tobject) ;begin adoconnection1.gettablenames(listbox1.items,false);end;

procedure tform1.listbox1dublclick( sender: tobject);begin with adotable1 do begin close;tablename : =( sender as tlistbox).items[(sender as tlistbox).itemindex]; Open; End;End;

TADOQuery از استفادهعبارات از بااستفاده بتوانيد تا ميسازد قادر را شماTADOQuery جز

SQL، ميتوانيد نمائيد پيدا دسترسي جدول ياچند يك هاي داده به . جز قراردهيد. SQL خاصيت رادرون نظرتان موردSQL عبارت

TADOQueryعبارات از استفاده قابليت DML2و DDL3ميباشد دارا را ADO درايور برايTADOQuery جز در شده استفادهSQL عبارت بايد

. باشد قبول قابل اجرا را آن و نميبرد بكارSQL عبارت مورد در را ارزيابي هيچ دلفي

. ميشود ارسال داده پايگاه به اجرا برايSQL . عبارت نميكند

21 –Data Manipulation Language3-Data Difinition Language

Page 21: ADO

. شود بازگشتي نتايج مجموعه توليد به منجرSQL عبارت كه درصورتي خواهدTADOQuery جز به بازگشتي نتايج ارسال به اقدام داده پايگاه. نمود يكي بايد نمائيد متصل داده باپايگاه راTADOQuery جز بتوانيد اينكه براي

. قرادهيد استفاده مورد را Connection ياConnectionString خواص از باداده همانندTADOQuery جز توسط شده تهيه هاي داده از ميتوانيد

اين ميشوند. به تهيهBDE بر مبتني اجزا طريق از كه نمائيد رفتار هايي بانام راTDataSource جز به مربوطDataSet خاصيت ميتوانيد كه معني

جز به را باداده مرتبط كنترلهاي سپس و نمائيد تنظيمTADOQuery جزTDataSourceنمائيد. مرتبط

استاندارد اي داده اجزا با مشابه نيزTADOTable جز ركوردهاي راهبري جد از شده برده ارث به متدهاي از ميتوانيد كه معني اين است. به

TDataSetنظير First,Last,Nextو Priorگر اشاره نمودن جابجا براي . نمائيد استفاده ركورد

اي داده اجزا با مشابه نيز برنامه طريق از ها داده دستكاري همچنين نظير اي شده برده ارث به ميگيرد. متدهاي صورت استاندارد

Insert,Editجز تا ميشوند باعث TADOQueryقرار ويرايش حالت در ميگردد. تغييرات ثبت باعث Post. متد گيرد

SQL عبارات نمودن تعيين )Object Inspector( اشياء بازرس پنجره از بااستفاده طراحي زمان در

. شدSQL خاصيت به مربوط ويرايشگر پنجره شدن نمايان باعثميشود. تايپ ويرايشگر اين درTADOQuery جز به مربوطSQL عبارت

كردSQL خاصيت دهي مقدار به اقدام ميتوان نيز اجرا زمان در همچنين شي يك ،TQuary جز به مربوطSQL خاصيت همانند نيز خاصيت . اين

يك زير مثال در نمونه ) است. برايStringList( أي رشته ليست نوع از: است شده داده نسبت خاصيت اين بهSQL عبارت

with ADOQuery1 dobegin Close;

With SQL doBegin

Clear;Add(‘Select company, state from Customer’);Add(‘Where state=’+QuotedStr(‘HI’)+’ Order by

compamy’);End;Open;

end;

Page 22: ADO

SQL عبارات اجراي باشد معتبر عبارت يكTADOQuery ازSQL خاصيت كه صورتي در

: دارد وجود اجرا براي دوروش كرد آن اجراي به اقدام ميتوان Open متد _ فراخواني1 ExecSQL متد _ فراخواني2

نكته Open متد از باشد بازگشتي نتايج داراي مربوطهSQL عبارت كه درصورتي

. ميشود استفاده

: يك مثالADOStoredProc1.SQL.Text := ‘Select * from customer’;ADOStoredProc1.Open;

: دو مثالADOStoredProc1.SQL.Text := ‘Delete from students where (deleted=1)’;ADOStoredProc1.ExecSQL;

TADOStoredProc از استفاده آنرا داده پايگاه كه را شده ذخيره روالهاي ميتوان جز اين از استفاده با

كرد. اجرا ميكند تهيه . براي ميگيرد قرارProcedureName خاصيت در شده ذخيره روال نام

Connection ازخواص يكي بايد شود متصل داده پايگاه به جز اين اينكه روي كارها كليه قرارداد. انجام استفاده مورد راConnectionString يا

داده برروي كارها انجام همانندProcedure يك اجراي از حاصل هاي داده. استBDE اجزا از حاصل هاي ميتوانExecProc وOpen دومتد از شده ذخيره روال يك اجراي براي

. كرد استفاده بازگشتي نتايج مربوطه روال كه ميشود استفاده Openمتد از وقتي

. باشد داشته: مثال

with ADOStoredProc1 dobegin

ProcedureName:=TlistBox(Sender).Items[ TlistBox(Sender).ItemIndex ];

ExexcProc;end;

Page 23: ADO

: مآخذ و منابع

1. Cantu Marco – Mastering Delphi 5 – Sybex Pub. – 19992. Martiner William, Herion David, Falino James – Building

Distributed Applications With ADO - 20003. Inprise Corporation – Delphi 5 Developer’s Guide – 19994. Henderson Ken – Database Developre’s Guide with Delphi5. Pacheco Xavier, Teixeira Steve – Delphi 4 Developre’s Guide

– Sams Pub. - 1998 انتشCCارات – زاده غني مترجم– 5 دلفي كامل مرجع – ريزدرف كنت.6

1379 گستر- تهران نشرتهران – بهينه انتشارات– 4 دلفي – جوردكاني حسين.7

8. HTTP://www.MicroSoft.com/library/en-us/ado270/htm

پايان


Recommended