مقدمة إلى SQL-DMO
يعد Microsoft SQL Server حاليًا نظام إدارة قاعدة البيانات الشهير. من خلال التحسين المستمر وتطوير SQL Server والمجموعة المثالية مع أنظمة تشغيل Windows Series الخاصة بـ Microsoft ، فإنه يوفر أداءً أفضل وسهولة الاستخدام على منصة Windows ، لذلك يتم تقديره بشكل متزايد. الاسم الكامل لـ SQL-DMO هو كائنات إدارة SQL الموزعة. إنها مجموعة تحتوي على مجموعة من coms مع واجهات مزدوجة. من خلال SQL-DMO ، يمكننا التحكم في محرك قاعدة البيانات وإدارة النسخ المتماثل التي تدير SQL Server. نظرًا لأن SQL-DMO عبارة عن مجموعة من COM ، يمكن استخدامها من قبل أي أداة تطوير يمكنها استخدام COM ، بما في ذلك VB و Delphi و VC و BCB و ASP ، وما إلى ذلك ، جميع أدوات التطوير تقريبًا ضمن منصة Windows.
يستخدم SQL-DMO
لماذا نحتاج إلى استخدام SQL-DMO لإدارة قواعد البيانات؟ ألم يكن الأمر كافياً بالنسبة لنا لإدارة قاعدة البيانات باستخدام برنامج Enterprise Manager و T-SQL؟ يمكن لـ SQL-DMO تنفيذ أنشطة إدارة قاعدة بيانات مرنة وقابلة للتخصيص وفعالة. نظرًا لأن SQL-DMO يوفر واجهة إدارة لخادم SQL ، من خلال البرمجة ، يمكنك تخصيص أنشطة الإدارة وفقًا لاحتياجاتك. على سبيل المثال ، إذا كنا ندير مؤسسة كبيرة مع العديد من مثيلات خادم SQL. تحتاج الآن إلى إضافة مستخدم إلى جميع مثيلات SQL في مؤسستك يمكنك استخدام برمجة SQL-DMO لتنفيذ المكالمات ، ويمكن إكمالها بسهولة وكفاءة مع دورة واحدة. في رأي المؤلف ، الأهم من ذلك هو أنه يمكن إدارة MSDE باستخدام SQL-DMO. خادم MS SQL مكلف ، في حين أن MSDE مجاني. في بعض التطبيقات الصغيرة والمتوسطة الحجم ، MSDE كافية. ومع ذلك ، نظرًا لأن MSDE يوفر محرك قاعدة بيانات فقط ولكن لا يوفر واجهة إدارة مرئية ، فمن المستحيل إدارة قواعد البيانات في MSDE بانتظام ، مما يحد من نطاق تطبيق MSDE. في هذا الوقت ، إذا استخدمنا SQL-DMO ، فيمكننا توفير واجهة إدارة قاعدة البيانات الخاصة بنا ، حتى نتمكن من تنفيذ إدارة منتظمة معينة لقاعدة البيانات في MSDE. إذا لم يتم النظر في الوقت والتكلفة ، فيمكنك إنشاء واجهة إدارة مماثلة لواجهة Enterprise Manager. في الواقع ، يتم تنفيذ معظم وظائف مدير المؤسسة باستخدام SQL-DMO. (يتم استخدام SQL-NS (SQL-Namespace ، وهي أيضًا مجموعة كائن COM ، توفر الوصول إلى مساحة اسم الكائن في SQL Server) ، ولكن SQL-NS نفسها مبنية أيضًا على SQL-DMO)
مضيف وتكوين SQL-DMO
مضيف SQL-DMO هو SQLDMO.DLL ، الموجود تحت X:/Program Files/Microsoft SQL Server/80/Tools/Binn. بالإضافة إلى ذلك ، يتطلب أيضًا الملفات التالية: l
sqldmo.dll ( مكتبة النوع الرئيسي) l
sqldmo.rll ( ملف مورد اللغة) l
sqlsvc.dll ( اكتب مكتبة لإدارة قاعدة البيانات) l
sqlsvc.rll ( ملف مورد اللغة) l
sqlunirl .dll (
طبقة إعادة توجيه Unicode ) l
sqlrsld.dll ( لتحميل الموارد) l
ODBC ( بما في ذلك ODBC32.DLL ، SQLSRV32.DLL ، ODBCBCP.DLL ، إلخ) ، إليك شرح لهيكل الاتصال (الشكل 1):
| ينشئ تطبيقنا كائنات باستخدام SQL-DMO هنا |
الشكل 1 هيكل مكالمة SQL-DMO
شجرة كائن SQL-DMO
دعونا أولاً نلقي نظرة على شجرة الكائن الضخمة والمعقدة لـ SQL-DMO (انظر الشكل 3): كائن SQLServer هو العمود الفقري لشجرة الكائن هذه ، وهناك ثلاثة فروع رئيسية تحت هذا العمود الفقري: L Database Branch ، وسلسلة من تطبيقات الكائنات تحت IT IT مهام الهندسة المعمارية ومهام الصيانة في SQLServer. L Jobserver Branch ، سلسلة من الكائنات تحت تقنية المعلومات تنفذ خدمة وكيل SQL Server (Agent). L REPLICATION BRANCH ، وهي سلسلة من الكائنات تحت تكنولوجيا المعلومات تنفذ خدمة النسخ المتماثل لخادم SQL. هناك أيضًا أشياء يجب الإشارة إليها: L لا تسرد شجرة الكائن كائن التطبيق ، ولكن هذا في الواقع كائن مهم نسبيًا. أي كائن SQL-DMO لديه خاصية تشير إلى كائن التطبيق. يمثل كائن التطبيق تطبيقًا عالميًا ، يحتوي على كائنين تجميع: خوادم ومجموعات الخادم. كما هو موضح في الشكل 2: تمثل شجرة كائن تطبيق L Ibourt فقط هيكل SQL-DMO ولا يسرد جميع الكائنات ، مثل كائن Namelist ، كائن ServerGroup ، إلخ. تحتوي شجرة كائن SQL-DMO على بنية معقدة والعديد من الكائنات. الشكل 3 شجرة كائن SQL-DMO
تنفيذ Delphi مغلف SQL-DMO
فيما يلي وصف للمكون TDBCTRL لتغليف SQL-DMO الذي تم تنفيذه من قبل المؤلف باستخدام Delphi. نظرًا لأنني كنت بحاجة إلى محرك قاعدة بيانات مجانية في مشروع معين ، فقد اخترت أخيرًا MSDE ، لكن MSDE ليس لديها واجهة إدارة ، إنه مجرد محرك. لذلك ، هناك حاجة لتوفير واجهة إدارة بسيطة وواضحة لـ MSDE. لا نحتاج إلى توفير أكبر عدد ممكن من وظائف الإدارة مثل مدير المؤسسات ، فنحن بحاجة فقط إلى توفير الوظائف الأكثر شيوعًا. بالنظر إلى سهولة الاستخدام وقابلية التوسع ، يقرر توفيره في شكل مكونات. توفر المكونات المنفذة طبقة من التغليف لـ SQL-DMO ، وتغلف بعض الوظائف الشائعة الاستخدام ، وتبسيط الاستخدام. لاحظ أن تجميع هذا المكون يتطلب تقديم مكتبة نوع SQL-DMO وإنشاء رمز الوصف المقابل. يحتوي الرمز على العديد من الاستخدام المنتظم لـ Delphi والتدوين الاصطلاحي لكائنات COM. لن أناقش كيف يستخدم Delphi COM هنا ، يمكن للقراء الرجوع إلى الكتب ذات الصلة. يحتوي هذا المكون على الخصائص التالية: مضيف الخصائص: سلسلة قراءة FHOST FHOST ؛ OGIN: سلسلة قراءة FLOGIN FLOGIN ؛ عضو في البيانات الخاصة: SQLServer للحفظ. نوعه هو _sqlservr. المُنشئ هو الاتصال لإنشاء كائن SQLServer. المدمر هو أيضا فقط لإكمال تدمير كائن sqlserver. مراوح TDBCTRL. بعد ذلك ، ستكمل دلفي تدمير كائنات كوم وراء الكواليس. ورث ؛ النهاية ؛ إذا أردنا إدارة وتشغيل مثيل SQL Server معين ، يجب علينا أولاً الاتصال بهذه المثيل. تنفذ وظيفة ConnectToServer التالية وظيفة كيفية الاتصال بمثيل SQL Server. وظيفة TDBCTRL.CONNECTTOSERVER: BEGIN SQLServer.loginsecure: النتيجة: اعتمادًا على إذن المستخدم في المستخدم). تُظهر بعض الطرق المذكورة أدناه بعض الميزات. تحصل طريقة getTablelist على جميع أسماء الجدول لقاعدة البيانات وإرجاعها في قائمة tstringlist. وظيفة TDBCTRL.GETTABLES .databases.item (dbname ، sqlserver) ؛ // الحصول على كائن قاعدة البيانات بناءً على اسم قاعدة البيانات لـ i: = 1 to nowdb.tables.count تبدأ الآن: = nowdb.tables.item (i ، 0) ؛ D (Nowtable. جميع المشاهدات في قاعدة البيانات (طرق العرض) ، وجميع حقول جدول أو عرض (أعمدة) ، وجميع مجموعات ملفات البيانات من قاعدة بيانات ، وملفات البيانات (ملفات الملفات ، DBFILES) ، وما إلى ذلك. SQL-DMO. يمكن أن يتبع استخدام كائنات SQL-DMO الخطوات الأساسية التالية: الحصول على كائن أو كائن مجموعة من خلال كائن الطبقة العلوية ، ثم استخدم الكائن أو الحصول على كائن في كائن المجموعة قبل الاستخدام. بشكل عام ، إذا كان كائن جمع ، فهناك طريقة عنصر ، ويمكن إرجاع كائن عضو المجموعة بناءً على الفهرس أو الاسم. تجدر الإشارة إلى أن الفهرس يبدأ من 1 بدلاً من 0. تُظهر جميع الطرق المذكورة أعلاه كيفية الحصول على معلومات من قاعدة البيانات. توضح هذه الطريقة كيفية الحفاظ على قاعدة البيانات. وظيفة TDBCTRL.BackupdB (DBNAME ، BackupFile: Boolean ؛ // المعلمات التي تم تمريرها هي اسم قاعدة البيانات للنسخ الاحتياطي وملف النسخ الاحتياطي VAR DMOBACK: _backup ؛ كائن الجهاز / /قم بتعيين جهاز النسخ الاحتياطي (BackupFile) ؛ = dbname+'Bak' ؛ هنا لن تُرجع القيمة ، لا توجد طريقة ، هل يمكنك إضافة الاستثناء لأن مجموعة النسخ الاحتياطي موجودة بالفعل ؛ = DBNAME "BAK" ؛ لا شيء ؛ e nd ؛ end ؛ بالإضافة إلى ذلك ، أود أن أقدم مثالاً شرح كيفية استخدام كائن التطبيق المذكور في البداية. هذه الطريقة هي الحصول على أسماء جميع مثيلات خادم SQL المتوفرة (أي قابلة للوصول والاتصال). وظيفة TDBCTRL.GETSERVER LISTRIVE: TSTRINGLIST): VAREAN ؛ ؛ نهاية الكائن ؛ . يمكن للقراء الرجوع إلى نموذج رمز SQL Server عبر الإنترنت للتعلم من مثال واحد وتنفيذ الوظائف التي يريدونها. إذا كنت بحاجة إلى جميع التعليمات البرمجية لهذا المكون ، فيمكنك أن تسألني.
تعليمات أخرى
الإصدار 2000 من SQL-DMO متوافق تمامًا مع SQL Server7.0 و SQL Server 2000. ومع ذلك ، يتم توفير أكثر من 80 واجهات جديدة لدعم الميزات الجديدة لـ SQL Server 2000. هذه الواجهات الجديدة تنتهي بكل ما بـ "2" ، وهي مجموعات فائقة لتلك الواجهات في SQL Server الأصلي 7.0. وهذا يعني ، إذا كنت ترغب في استخدام الميزات الجديدة لـ SQL Server 2000 ، فأنت بحاجة إلى استخدام الواجهة مع "2" في النهاية.
فهرس
L Microsoft MSDNL Microsoft SQL Server Online Bookl "Delphi Com In-Depth Programming" (US) Eric Harmon Machinery Industry