Skip to content

3. الملاحق

3.1. إنشاء مشروع ويب باستخدام Visual Studio.NET على Windows XP Home Edition

يتيح لك Visual Studio.NET إنشاء أنواع مختلفة من المشاريع:

Image

لإنشاء مشروع تطبيق ويب، عادةً ما تختار نوع [ASP.NET Web Application]. يتطلب هذا النوع من المشاريع خادم ويب IIS محلي أو بعيد. إذا كنت تعمل على جهاز يعمل بنظام Windows XP، فإن هذا الخادم غير موجود ولا يمكن تثبيته. لذلك، لا يمكنك إنشاء مشروع [ASP.NET Web Application].

يمكنك التغلب على هذه المشكلة بقبول بعض العيوب الطفيفة. ببساطة:

  • استخدم خادم الويب Cassini بدلاً من خادم IIS. وهو متاح مجانًا على موقع Microsoft الإلكتروني.
  • استخدم مشروع [مكتبة الفئات] بدلاً من مشروع [تطبيق ويب ASP.NET]

لنقم بإنشاء مشروع بسيط لتوضيح كيفية القيام بذلك.

  • إنشاء مشروع [مكتبة فئات]
  • حذف [Class1.vb]

Image

  • أضف عنصرًا جديدًا إلى المشروع، من النوع [ملف نصي]، واسمه [demo.aspx]:
  • يتم التعرف على ملف [demo.aspx] كصفحة ويب، ويتم ربط محرر صفحات به. يحتوي هذا المحرر على لوحتين:
  • [التصميم] لإنشاء الصفحة بشكل رسومي
  • [HTML] للوصول إلى كود HTML للصفحة

Image

  • حدد [عرض/كود] لعرض قسم كود VB للصفحة. لا يحدث شيء. لا يمكنك الوصول إلى كود VB للصفحة.
  • انتقل إلى جزء [HTML] وأدخل الكود الذي سيربط صفحة [demo.aspx] بكود [demo.aspx.vb]:

Image

  • اطلب عرض كود عنصر التحكم المرتبط بالصفحة عبر [عرض الكود - F7]. سترى ملف [demo.aspx.vb]:

Image

  • يتم الآن التعرف على صفحة [demo.aspx] كصفحة ويب [.aspx] مرتبطة بملف [.aspx.vb].
  • ارجع إلى جزء [التصميم] في [demo.aspx] وقم بتصميم الصفحة التالية:

Image

تحتوي الصفحة على نص ومكون خادم من النوع [Label] بمعرف [lblHeure].

  • انتقل إلى جزء [HTML]. ستجد هناك الكود التالي:
<%@ Page codebehind="demo.aspx.vb" inherits="demo.demo" autoeventwireup="false" Language="vb" %>
Démo ASPX, il est
<asp:Label id="lblHeure" runat="server"></asp:Label>

هذا الرمز غير مكتمل من منظور صيغة HTML. دعونا نكمله:

<%@ Page codebehind="demo.aspx.vb" inherits="demo.demo" autoeventwireup="false" Language="vb" %>
<html>
    <head>
        <title>démo ASPX</title></head>
    <body>
        Démo ASPX, il est
        <asp:Label id="lblHeure" runat="server"></asp:Label>
    </body>
</html>
  • لننتقل إلى ملف [demo.aspx.vb] لكتابة كود التحكم الذي سيضبط الوقت في مكون [lblHeure]. نلاحظ أن أداة إكمال الكود IntelliSense لا تتعرف على هذا.
  • أغلق [demo.aspx] و [demo.aspx.vb] بعد حفظهما، ثم أعد فتحهما. انتقل إلى الكود في [demo.aspx.vb]. هذه المرة، يتم التعرف على مكون [lblHeure] من [demo.aspx] بواسطة IntelliSense في الكود [demo.aspx.vb]. أكمل الكود:

Image

  • قم بإنشاء المشروع عن طريق تحديد [Build/Build demo]. إذا نجح الإنشاء، يتم إنشاء ملف DLL في مجلد [bin] الخاص بالمشروع:

Image

  • نحن جاهزون للاختبار. نقوم بتكوين خادم Cassini (انظر الفقرة التالية) على النحو التالي:

Image

يتم تعيين وجهة الاختصار إلى Cassini على النحو التالي:

"E:\Program Files\Microsoft ASP.NET Web Matrix\v0.6.812\WebServer.exe" /path:"D:\temp\07-04-05\demo" /vpath:"/demo"
E:\..\WebServer.exe
مسار الملف القابل للتنفيذ
D:\temp\07-04-05\demo
مسار مجلد مشروع الويب في Visual Studio
/demo
المسار الافتراضي المرتبط
  • قم بتشغيل Cassini. سيظهر رمزه في شريط المهام. انقر بزر الماوس الأيمن عليه واختر خيار [إظهار التفاصيل] للتحقق من أن خادم الويب قد تم تكوينه بشكل صحيح:

Image

  • باستخدام متصفح، اطلب الصفحة التي أنشأناها عن طريق إدخال عنوان URL [http://localhost/demo/demo.aspx]. نحصل على النتيجة التالية:

Image

لقد نجحنا في إنشاء تطبيق ويب في Visual Studio باستخدام:

  • مشروع [مكتبة فئات]
  • خادم الويب Cassini

نحن نعرف الآن كيفية إنشاء تطبيقات الويب على أجهزة الكمبيوتر التي لا تحتوي على خادم IIS، مثل أجهزة Windows XP Home Edition.

3.2. أين يمكنك العثور على خادم الويب Cassini؟

للعمل مع منصة .NET من Microsoft، يمكنك استخدام خادم الويب Cassini. وهو متاح من خلال منتج يسمى [WebMatrix]، وهو بيئة تطوير ويب مجانية لمنصات .NET متاحة على الرابط:

Image

اتبع خطوات تثبيت المنتج بعناية:

  • قم بتنزيل وتثبيت منصة .NET (الإصدار 1.1 اعتبارًا من مارس 2004)
  • قم بتنزيل وتثبيت WebMatrix
  • قم بتنزيل وتثبيت MSDE (Microsoft Data Engine)، وهو إصدار محدود من SQL Server.

بمجرد اكتمال التثبيت، يصبح منتج [WebMatrix] متاحًا في قائمة البرامج المثبتة:

Image

يؤدي رابط [ASP.NET] Web Matrix إلى تشغيل بيئة تطوير ASP.NET:

Image

يؤدي الرابط [Class Browser] إلى تشغيل أداة لاستكشاف فئات .NET:

Image

لاختبار التثبيت، دعونا نطلق [WebMatrix]:

عند التشغيل الأولي، يطلب منك [WebMatrix] تحديد مواصفات المشروع الجديد. هذا هو التكوين الافتراضي له. يمكنك تكوينه بحيث لا يظهر مربع الحوار هذا عند التشغيل. يمكنك بعد ذلك الوصول إليه عبر خيار [ملف/ملف جديد]. يتيح لك [WebMatrix] إنشاء قوالب لمختلف تطبيقات الويب. أعلاه، حددنا في (1) أننا نريد إنشاء تطبيق [ASP.NET Page]، وهو عبارة عن صفحة ويب. في (2)، نحدد المجلد الذي سيتم وضع صفحة الويب هذه فيه. في (3)، ندخل اسم الصفحة. يجب أن يكون لها امتداد .aspx. أخيرًا، في (4)، نحدد أننا نريد العمل بلغة VB.NET؛ يدعم [WebMatrix] أيضًا لغتي C# و J#. بمجرد الانتهاء من ذلك، يعرض [WebMatrix] صفحة تحرير لملف [demo1.aspx]. ندخل الكود التالي هناك:

Image

  • تتيح لك علامة التبويب [التصميم] "تصميم" صفحة الويب التي ترغب في إنشائها. وتعمل هذه العلامة بشكل مشابه لبيئة تطوير التطبيقات (IDE) في نظام ويندوز.
  • سيؤدي التصميم الرسومي لصفحة الويب في [التصميم] إلى إنشاء كود HTML في علامة التبويب [HTML]
  • قد تحتوي صفحة الويب على عناصر تحكم تولد أحداثًا تتطلب استجابة، مثل الزر. سيتم التعامل مع هذه الأحداث بواسطة كود VB.NET الموجود في علامة التبويب [Code]
  • في النهاية، يعد ملف demo1.aspx ملفًا نصيًا يجمع بين كود HTML وكود VB.NET، ناتجًا عن التصميم الرسومي الذي تم إنشاؤه في [التصميم]، وكود HTML الذي تمت إضافته يدويًا في [HTML]، وكود VB.NET الموجود في [الكود]. يتوفر الملف بأكمله في علامة التبويب [الكل].
  • يمكن لمطور ASP.NET ذي الخبرة إنشاء ملف demo1.aspx مباشرةً باستخدام محرر نصوص دون الحاجة إلى أي بيئة تطوير متكاملة (IDE).

دعونا نختار الخيار [All]. يمكننا أن نرى أن [WebMatrix] قد أنشأ بالفعل بعض التعليمات البرمجية:

<%@ Page Language="VB" %>
<script runat="server">

    ' Insert page code here
    '

</script>
<html>
<head>
</head>
<body>
    <form runat="server">
         <!-- Insert content here -->
    </form>
</body>
</html>

لن نحاول شرح هذا الكود هنا. سنقوم بتحويله على النحو التالي:

<html>
<head>
    <title>Démo asp.net </title>
</head>
<body>
    Il est <% =Date.Now.ToString("hh:mm:ss") %>
</body>
</html>

الرمز أعلاه هو مزيج من HTML ورمز VB.NET. وقد تم وضعه داخل علامات <% ... %>. لتشغيل هذا الرمز، نستخدم الخيار [View/Start]. ثم يقوم [WebMatrix] بتشغيل خادم الويب Cassini إذا لم يكن قيد التشغيل بالفعل

Image

يمكنك قبول القيم الافتراضية المعروضة في مربع الحوار هذا واختيار الخيار [Start]. عندئذٍ يصبح خادم الويب نشطًا. سيقوم [WebMatrix] بعد ذلك بتشغيل المتصفح الافتراضي على الجهاز الذي يعمل عليه وطلب عنوان URL http://localhost:8080/demo1.aspx:

Image

من الممكن استخدام خادم Cassini خارج [WebMatrix]. يوجد الملف القابل للتنفيذ للخادم في <WebMatrix>\<version>\WebServer.exe، حيث <WebMatrix> هو دليل تثبيت [WebMatrix] و<version> هو رقم إصداره:

Image

افتح نافذة موجه الأوامر وانتقل إلى مجلد خادم Cassini:

E:\Program Files\Microsoft ASP.NET Web Matrix\v0.6.812>dir
...
29/05/2003  11:00               53 248 WebServer.exe
...

دعونا نقوم بتشغيل [WebServer.exe] بدون أي معلمات:

E:\Program Files\Microsoft ASP.NET Web Matrix\v0.6.812>webserver

تظهر لنا نافذة المساعدة:

Image

يقبل تطبيق [WebServer]، المعروف أيضًا باسم خادم الويب Cassini، ثلاث معلمات:

  • /port: رقم منفذ خدمة الويب. يمكن أن يكون أي رقم. القيمة الافتراضية هي 80
  • /path: المسار الفعلي لمجلد على القرص
  • /vpath: المجلد الافتراضي المرتبط بالمجلد الفعلي السابق. لاحظ أن الصيغة ليست /path=path بل /vpath:path، على عكس ما هو مذكور في [المثال] في لوحة المساعدة أعلاه.

لنضع الملف [demo1.aspx] في المجلد التالي:

Image

دعونا نربط المجلد الظاهري [/webmatrix] بالمجلد الفعلي [d:\data\devel\webmatrix]. يمكن تشغيل خادم الويب على النحو التالي:

E:\Program Files\Microsoft ASP.NET Web Matrix\v0.6.812>webserver /port:100 /path:"d:\data\devel\webmatrix" /vpath:"/webmatrix"

أصبح خادم Cassini نشطًا الآن، ويظهر رمزه في شريط المهام. إذا نقرت عليه نقرًا مزدوجًا:

Image

سترى إعدادات بدء تشغيل الخادم. كما يتوفر لديك خيار إيقاف [Stop] أو إعادة تشغيل [Restart] خادم الويب. إذا نقرت على رابط [Root URL]، فسيتم فتح جذر شجرة دليل الويب الخاص بالخادم في المتصفح:

Image

اتبع رابط [demos]:

Image

ثم رابط [demo1.aspx]:

Image

يمكننا أن نرى أنه إذا تم تعيين المجلد الفعلي P=[d:\data\devel\webmatrix] إلى المجلد الظاهري V=[/webmatrix] وكان الخادم يعمل على المنفذ 100، فإن صفحة الويب [demo1.aspx]، الموجودة فعليًا في [P\demos]، ستكون متاحة محليًا عبر عنوان URL [http://localhost:100/V/demos/demo1.aspx].

لتجنب الحاجة إلى استخدام نافذة DOS لتشغيل خادم Cassini، يمكنك إنشاء اختصار لملف الخادم القابل للتنفيذ بخصائص مشابهة لما يلي:

Image

الهدف
"C:\Program Files\Microsoft ASP.NET Web Matrix\v0.6.812\WebServer.exe" /port:80 /path:"D:\data\serge\work\2004-2005\aspnet\webarticles-010405\version3\web" /vpath:"/webarticles"
ابدأ في
"C:\Program Files\Microsoft ASP.NET Web Matrix\v0.6.812"

3.3. أين يمكنني العثور على Spring؟

الموقع الرئيسي لـ Spring هو [http://www.springframework.org/]. هذا هو الموقع الخاص بإصدار Java. أما إصدار .NET قيد التطوير حاليًا (أبريل 2005) فهو متاح على [http://www.springframework.net/].

Image

موقع التنزيل موجود على [SourceForge]:

Image

بمجرد تنزيل ملف zip أعلاه، قم بفك ضغطه:

Image

في هذا المستند، لم نستخدم سوى محتويات مجلد [bin]:

Image

في مشروع Visual Studio الذي يستخدم Spring، يجب عليك دائمًا القيام بأمرين:

  • وضع الملفات المذكورة أعلاه في مجلد [bin] الخاص بالمشروع
  • إضافة مرجع إلى تجميع [Spring.Core.dll] إلى المشروع

3.4. أين يمكنك العثور على NUnit؟

الموقع الإلكتروني الرئيسي لـ NUnit هو [http://www.nunit.org/]. الإصدار المتاح في أبريل 2005 هو 2.2.0:

Image

قم بتنزيل هذا الإصدار وتثبيته. يؤدي التثبيت إلى إنشاء مجلد يحتوي على واجهة الاختبار الرسومية:

الجزء المثير للاهتمام موجود في مجلد [bin]:

Image

Image

يشير السهم أعلاه إلى أداة الاختبار الرسومية. أضاف التثبيت أيضًا عناصر جديدة إلى مستودع تجميع Visual Studio، والتي سنستكشفها الآن.

لنقم بإنشاء مشروع Visual Studio التالي:

Image

توجد الفئة قيد الاختبار في [Person.vb]:

Public Class Personne

    ' private fields
    Private _nom As String
    Private _age As Integer

    ' default builder
    Public Sub New()
    End Sub

    ' properties associated with private fields
    Public Property nom() As String
        Get
            Return _nom
        End Get
        Set(ByVal Value As String)
            _nom = Value
        End Set
    End Property

    Public Property age() As Integer
        Get
            Return _age
        End Get
        Set(ByVal Value As Integer)
            _age = Value
        End Set
    End Property

    ' identity chain
    Public Overrides Function tostring() As String
        Return String.Format("[{0},{1}]", nom, age)
    End Function

    ' init method
    Public Sub init()
        Console.WriteLine("init personne {0}", Me.ToString)
    End Sub

    ' close method
    Public Sub close()
        Console.WriteLine("destroy personne {0}", Me.ToString)
    End Sub

End Class

توجد فئة الاختبار في [NunitTestPersonne-1.vb]:

Imports System
Imports NUnit.Framework

<TestFixture()> _
 Public Class NunitTestPersonne

    ' object tested
    Private personne1 As Personne

    <SetUp()> _
    Public Sub init()
        ' create an instance of Person
        personne1 = New Personne
        ' log
        Console.WriteLine("setup test")
    End Sub

    <Test()> _
    Public Sub demo()
        ' log screen
        Console.WriteLine("début test")
        ' init person1
        With personne1
            .nom = "paul"
            .age = 10
        End With
        ' tests
        Assert.AreEqual("paul", personne1.nom)
        Assert.AreEqual(10, personne1.age)
        ' log screen
        Console.WriteLine("fin test")
    End Sub

    <TearDown()> _
    Public Sub destroy()
        ' follow-up
        Console.WriteLine("teardown test")
    End Sub

End Class

هناك عدة أمور يجب ملاحظتها:

  • يتم تعيين سمات للطرق مثل <Setup()> و<TearDown()>، ...
  • لكي يتم التعرف على هذه السمات، يجب أن يكون ما يلي صحيحًا:
    • يجب أن يشير المشروع إلى التجميع [nunit.framework.dll]
    • تستورد فئة الاختبار مساحة الاسم [NUnit.Framework]

تتم إضافة المرجع بالنقر بزر الماوس الأيمن على [References] في مستكشف الحلول:

Image

يجب أن يكون التجميع [nunit.framework.dll] موجودًا في القائمة إذا تم تثبيت [NUnit] بنجاح. ما عليك سوى النقر المزدوج على التجميع لإضافته إلى المشروع:

Image

بمجرد الانتهاء من ذلك، يجب أن تستورد فئة الاختبار [NunitTestPersonne] مساحة الاسم [NUnit.Framework]:

Imports NUnit.Framework

ثم يجب التعرف على سمات فئة الاختبار [NunitTestPersonne].

  • تحدد السمة <Test()> الطريقة المراد اختبارها
  • تحدد السمة <Setup()> الطريقة التي سيتم تنفيذها قبل كل طريقة يتم اختبارها
  • تحدد السمة <TearDown()> الطريقة التي سيتم تنفيذها بعد كل طريقة يتم اختبارها
  • تسمح لك طريقة Assert.AreEqual باختبار تساوي كيانين. هناك العديد من الطرق الأخرى من النوع Assert.xx.
  • توقف أداة NUnit تنفيذ الطريقة التي يتم اختبارها بمجرد فشل طريقة [Assert] وتعرض رسالة خطأ. وإلا، فإنها تعرض رسالة نجاح.

دعونا نُهيئ مشروعنا لإنشاء مكتبة DLL:

Image

سيتم تسمية ملف DLL الذي تم إنشاؤه [nunit-demos-1.dll] وسيتم وضعه افتراضيًا في مجلد [bin] الخاص بالمشروع. لنقم ببناء مشروعنا. نحصل على ما يلي في مجلد [bin]:

Image

الآن دعونا نطلق أداة الاختبار الرسومية NUnit. تذكر أنها موجودة في <Nunit>\bin واسمها [nunit-gui.exe]. يشير <Nunit> إلى مجلد تثبيت [Nunit]. تظهر الواجهة التالية:

Image

دعونا نستخدم خيار القائمة [File/Open] لتحميل ملف DLL [nunit-demos-1.dll] من مشروعنا:

Image

يمكن لـ [Nunit] اكتشاف فئات الاختبار الموجودة في ملف DLL الذي تم تحميله تلقائيًا. هنا، يجد الفئة [NunitTestPersonne]. ثم يعرض جميع أساليب الفئة التي تحتوي على السمة <Test()>. يتيح لك الزر [Run] تشغيل الاختبارات على الكائن المحدد. إذا كانت هذه هي الفئة [NunitTestPersonne]، فسيتم اختبار جميع الأساليب المعروضة. يمكنك اختبار طريقة معينة عن طريق تحديدها والنقر على [Run]. دعونا نقوم بتشغيل الفئة:

Image

يُشار إلى نجاح الاختبار على طريقة ما بنقطة خضراء بجوار الطريقة في النافذة اليسرى. ويُشار إلى فشل الاختبار بنقطة حمراء.

تعرض نافذة [Console.Out] على اليمين مخرجات الشاشة الناتجة عن الطرق التي تم اختبارها. هنا، أردنا متابعة تقدم الاختبار:

1
2
3
4
setup test
début test
fin test
teardown test
  • يُظهر السطر 1 أن طريقة السمة <Setup()> يتم تنفيذها قبل الاختبار
  • يتم إنشاء السطرين 2 و3 بواسطة الطريقة [demo] التي يتم اختبارها (انظر الكود أعلاه)
  • يُظهر السطر 4 أن طريقة السمة <TearDown()> يتم تنفيذها بعد الاختبار

3.5. أين يمكنني العثور على نظام إدارة قواعد البيانات Firebird ؟

الموقع الإلكتروني الرئيسي لـ Firebird هو [http://firebird.sourceforge.net/]. توفر صفحة التنزيلات الروابط التالية (أبريل 2005):

Image

ستقوم بتنزيل العناصر التالية:

firebird-win32
نظام إدارة قواعد البيانات لـ Windows
firebird-net-provider
مكتبة فئات لتطبيقات .NET تتيح الوصول إلى نظام إدارة قواعد البيانات دون استخدام برنامج تشغيل ODBC.
برنامج تشغيل firebird-ODBC
برنامج تشغيل Firebird ODBC

قم بتثبيت هذه المكونات. يتم تثبيت نظام إدارة قواعد البيانات (DBMS) في مجلد يحتوي على محتويات مشابهة لما يلي:

Image

توجد الملفات الثنائية في مجلد [bin]:

Image

fbguard.exe
يسمح لك بتشغيل/إيقاف نظام إدارة قواعد البيانات
isql.exe
عميل سطر الأوامر لإدارة قواعد البيانات

لاحظ أنه بشكل افتراضي، يُسمى مسؤول نظام إدارة قواعد البيانات [SYSDBA] وكلمة المرور هي [masterkey]. تمت إضافة قوائم إلى [ابدأ]:

Image

يتيح لك خيار [Firebird Guardian] تشغيل/إيقاف نظام إدارة قواعد البيانات. بعد التشغيل، يظل رمز نظام إدارة قواعد البيانات في شريط مهام Windows:

لإنشاء قواعد بيانات Firebird وإدارتها باستخدام عميل سطر الأوامر [isql.exe]، يجب عليك قراءة الوثائق المرفقة مع المنتج في المجلد [doc]. هناك طريقة أسرع للعمل مع Firebird وهي استخدام عميل رسومي. أحد هذه العملاء هو IB-Expert، الموصوف في القسم التالي.

3.6. أين يمكنني العثور على IB- Expert؟

الموقع الإلكتروني الرئيسي لـ Firebird هو [http://www.ibexpert.com/]. توفر صفحة التنزيلات الروابط التالية:

Image

حدد الإصدار المجاني [Personal Edition]. بمجرد تنزيله وتثبيته، سيكون لديك مجلد مشابه لما يلي:

Image

الملف القابل للتنفيذ هو [ibexpert.exe]. عادةً ما يتوفر اختصار في قائمة [Start]:

Image

بمجرد تشغيله، يعرض IBExpert النافذة التالية:

Image

استخدم خيار [Database/Create Database] لإنشاء قاعدة بيانات:

Image

الخادم
يمكن أن يكون [محلي] أو [بعيد]. هنا، يقع الخادم الخاص بنا على نفس الجهاز الذي يعمل عليه [IBExpert]. لذا نختار [محلي]
قاعدة البيانات
استخدم زر [المجلد] في القائمة المنسدلة لتحديد ملف قاعدة البيانات. يقوم Firebird بتخزين قاعدة البيانات بأكملها في ملف واحد. هذه إحدى مزاياه. يمكنك نقل قاعدة البيانات من جهاز كمبيوتر إلى آخر بمجرد نسخ الملف. تتم إضافة اللاحقة [.gdb] تلقائيًا.
اسم المستخدم
SYSDBA هو المسؤول الافتراضي لتوزيعات Firebird الحالية
كلمة المرور
masterkey هي كلمة مرور المسؤول SYSDBA في إصدارات Firebird الحالية
اللهجة
لهجة SQL المراد استخدامها
تسجيل قاعدة البيانات
إذا تم تحديد هذا المربع، فسيعرض IBExpert رابطًا إلى قاعدة البيانات بعد إنشائها

إذا ظهرت لك الرسالة التالية عند النقر على زر [موافق] لإنشاء قاعدة البيانات:

Image

فهذا يعني أنك لم تقم بتشغيل Firebird. قم بتشغيله. ستظهر نافذة جديدة:

Image

إصدار الخادم
[IBExpert] يمكنه إدارة أنظمة إدارة قواعد البيانات المختلفة المشتقة من Interbase. حدد إصدار Firebird الذي قمت بتثبيته

Image

بمجرد تأكيد هذه النافذة الجديدة بالنقر فوق [تسجيل]، ستظهر النتيجة التالية:

Image

للوصول إلى قاعدة البيانات التي تم إنشاؤها، ما عليك سوى النقر مرتين على الرابط الخاص بها. سيقوم IBExpert بعد ذلك بعرض شجرة تتيح الوصول إلى خصائص قاعدة البيانات:

Image

لنقم بإنشاء جدول. انقر بزر الماوس الأيمن على [Tables] واختر خيار [New Table]. ستظهر نافذة تعريف خصائص الجدول:

لنبدأ بتسمية الجدول [ARTICLES] باستخدام حقل الإدخال [1]:

استخدم حقل الإدخال [2] لتعريف مفتاح أساسي [ID]:

يتم تعيين حقل كمفتاح أساسي بالنقر المزدوج على حقل [PK] (المفتاح الأساسي). دعونا نضيف حقولًا باستخدام الزر [3]:

Image

لن يتم إنشاء الجدول حتى ننتهي من "تجميع" تعريفه. استخدم زر [تجميع] أعلاه لإنهاء تعريف الجدول. يقوم IBExpert بإعداد استعلامات SQL لإنشاء الجدول ويطلب منك التأكيد:

Image

ومن المثير للاهتمام أن IBExpert يعرض استعلامات SQL التي نفذها. وهذا يتيح لك تعلم لغة SQL وأي لهجة SQL خاصة قد يتم استخدامها. يقوم زر [Commit] بالتحقق من صحة المعاملة الحالية، بينما يقوم زر [Rollback] بإلغائها. هنا، نقبلها بالنقر فوق [Commit]. وبمجرد الانتهاء من ذلك، يضيف IBExpert الجدول الذي تم إنشاؤه إلى شجرة قاعدة البيانات لدينا:

Image

بالنقر المزدوج على الجدول، يمكننا الوصول إلى خصائصه:

Image

تسمح لنا لوحة [Constraints] بإضافة قيود تكامل جديدة إلى الجدول. لنفتحها:

Image

نرى قيد المفتاح الأساسي الذي أنشأناه. يمكننا إضافة قيود أخرى:

  • المفاتيح الخارجية [Foreign Keys]
  • قيود سلامة الحقول [التحقق]
  • قيود تفرد الحقول [Uniques]

لاحظ أن:

  • يجب أن تكون الحقول [ID، PRICE، CURRENTSTOCK، MINIMUMSTOCK] أكبر من 0
  • يجب أن يكون حقل [NAME] غير فارغ وفريد

افتح لوحة [Checks] وانقر بزر الماوس الأيمن في منطقة تعريف القيد لإضافة قيد جديد:

Image

دعونا نحدد القيود المطلوبة:

Image

لاحظ أعلاه أن القيد [NAME<>''] يستخدم علامتي اقتباس مفردة، وليس علامتي اقتباس مزدوجة. قم بتجميع هذه القيود باستخدام الزر [Compile] أعلاه:

Image

مرة أخرى، يثبت IBExpert سهولة استخدامه من خلال عرض استعلامات SQL التي نفذها. الآن دعونا ننتقل إلى لوحة [Constraints/Unique] لتحديد أن الاسم يجب أن يكون فريدًا:

Image

دعونا نحدد القيد:

Image

لنقوم بتجميعه. بمجرد الانتهاء من ذلك، افتح لوحة [DDL] للجدول [ARTICLES]:

Image

تعرض هذه اللوحة كود SQL لإنشاء الجدول مع جميع قيوده. يمكنك حفظ هذا الكود في نص برمجي لتشغيله لاحقًا:

SET SQL DIALECT 3;
SET NAMES NONE;
CREATE TABLE ARTICLES (
    ID            INTEGER NOT NULL,
    NOM           VARCHAR(20) NOT NULL,
    PRIX          DOUBLE PRECISION NOT NULL,
    STOCKACTUEL   INTEGER NOT NULL,
    STOCKMINIMUM  INTEGER NOT NULL
);
ALTER TABLE ARTICLES ADD CONSTRAINT CHK_ID check (ID>0);
ALTER TABLE ARTICLES ADD CONSTRAINT CHK_PRIX check (PRIX>0);
ALTER TABLE ARTICLES ADD CONSTRAINT CHK_STOCKACTUEL check (STOCKACTUEL>0);
ALTER TABLE ARTICLES ADD CONSTRAINT CHK_STOCKMINIMUM check (STOCKMINIMUM>0);
ALTER TABLE ARTICLES ADD CONSTRAINT CHK_NOM check (NOM<>'');
ALTER TABLE ARTICLES ADD CONSTRAINT UNQ_NOM UNIQUE (NOM);
ALTER TABLE ARTICLES ADD CONSTRAINT PK_ARTICLES PRIMARY KEY (ID);

حان الوقت الآن لإدخال البيانات في جدول [ARTICLES]. للقيام بذلك، استخدم لوحة [Data]:

Image

يتم إدخال البيانات بالنقر المزدوج على حقول الإدخال في كل صف من الجدول. تضاف صفوف جديدة باستخدام الزر [+]، ويتم حذف الصفوف باستخدام الزر [-]. يتم تنفيذ هذه العمليات ضمن معاملة يتم تثبيتها باستخدام الزر [Commit Transaction]. بدون هذا التثبيت، ستفقد البيانات.

يتيح لك IBExpert تشغيل استعلامات SQL عبر خيار [Tools/SQL Editor] أو [F12]. يمنحك هذا إمكانية الوصول إلى محرر استعلامات SQL متقدم حيث يمكنك تشغيل الاستعلامات. يتم حفظها، بحيث يمكنك العودة إلى استعلام قمت بتشغيله بالفعل. إليك مثال على ذلك:

Image

نقوم بتنفيذ استعلام SQL باستخدام الزر [Execute] أعلاه. نحصل على النتيجة التالية:

Image

سنوقف عروضنا التوضيحية هنا. أثبتت مجموعة IBExpert-Firebird أنها ممتازة لتعلم قواعد البيانات.

3.7. تثبيت واستخدام برنامج تشغيل ODBC لـ [Firebird]

3.8. تثبيت برنامج التشغيل

يتيح الرابط [firebird-odbc-provider] الموجود في صفحة تنزيلات [Firebird] (القسم 3.5) الوصول إلى برنامج تشغيل ODBC. وبمجرد تثبيته، يظهر في قائمة برامج تشغيل ODBC المثبتة.

3.9. إنشاء مصدر بيانات ODBC

  • قم بتشغيل الأداة [ابدأ -> إعدادات -> أداة التكوين -> أدوات إدارية -> مصادر بيانات ODBC]:

Image

  • تظهر النافذة التالية:

Image

  • انقر فوق [إضافة] لإضافة مصدر بيانات نظام جديد (في جزء [DSN النظام]) سنربطه بقاعدة بيانات Firebird التي أنشأناها في القسم السابق:

Image

  • أولاً، نحتاج إلى تحديد برنامج تشغيل ODBC الذي سنستخدمه. أعلاه، نختار برنامج تشغيل Firebird ثم نضغط على [إنهاء]. بعد ذلك، يتولى معالج برنامج تشغيل Firebird ODBC المهمة:

Image

  • نقوم بملء الحقول المختلفة:

Image

DSN [demo-odbc-firebird]
اسم DSN لمصدر ODBC — يمكن أن يكون أي شيء
قاعدة البيانات [D:\..\DBARTICLES.GDB]
اسم قاعدة بيانات Firebird المراد استخدامها — استخدم [Browse] لاختيار ملف .gbd المقابل
حساب قاعدة البيانات [SYSDBA]
اسم المستخدم الذي سيتم استخدامه للاتصال بقاعدة البيانات
كلمة المرور [masterkey]
كلمة المرور المرتبطة باسم المستخدم هذا

يتيح لك زر [اختبار الاتصال] التحقق من صحة المعلومات التي أدخلتها. قبل استخدامه، قم بتشغيل نظام إدارة قواعد البيانات [Firebird]:

Image

  • قم بتأكيد معالج ODBC بالنقر فوق [موافق] عدة مرات حسب الضرورة

3.10. اختبر مصدر ODBC

هناك طرق مختلفة للتحقق من أن مصدر ODBC يعمل بشكل صحيح. هنا، سنستخدم Excel:

Image

  • استخدم الخيار [بيانات -> بيانات خارجية -> إنشاء استعلام] أعلاه. سيؤدي ذلك إلى فتح النافذة الأولى لمعالج تعريف مصدر البيانات. يعرض جزء [قواعد البيانات] قائمة بمصادر ODBC المحددة حاليًا على الجهاز:

Image

  • حدد مصدر ODBC [odbc-firebird-articles] الذي أنشأناه للتو وانتقل إلى الخطوة التالية بالنقر فوق [موافق]:

Image

  • تسرد هذه النافذة الجداول والأعمدة المتاحة في مصدر ODBC. سنختار الجدول بأكمله:

Image

  • انتقل إلى الخطوة التالية بالنقر فوق [Next]:

Image

  • تسمح لنا هذه الخطوة بتصفية البيانات. هنا، لن نقوم بتصفية أي شيء وسنتابع إلى الخطوة التالية:

Image

  • تسمح لنا هذه الخطوة بفرز البيانات. لن نقوم بذلك وسننتقل إلى الخطوة التالية:

Image

  • تسألنا الخطوة الأخيرة عما نريد أن نفعله بالبيانات. هنا، نقوم بتصديرها إلى Excel:

Image

  • هنا، يسألنا Excel عن المكان الذي نريد وضع البيانات المسترجعة فيه. نضعها في الورقة النشطة بدءًا من الخلية A1. ثم يتم استرجاع البيانات في ورقة Excel:

Image

هناك طرق أخرى لاختبار صحة مصدر ODBC. على سبيل المثال، يمكنك استخدام مجموعة برامج OpenOffice المجانية المتوفرة على [http://www.openoffice.org]. فيما يلي مثال على استخدام OpenOffice:

  • يوفر رمز موجود على الجانب الأيسر من نافذة OpenOffice إمكانية الوصول إلى مصادر البيانات. ثم تتغير الواجهة لتعرض منطقة إدارة مصادر البيانات:

Image

  • يوجد مصدر بيانات واحد محدد مسبقًا: مصدر [Bibliography]. النقر بزر الماوس الأيمن على منطقة مصادر البيانات يتيح لك إنشاء مصدر جديد باستخدام خيار [Manage Data Sources]:

Image

  • يتيح لك معالج [إدارة مصادر البيانات] إنشاء مصادر بيانات. النقر بزر الماوس الأيمن على منطقة مصادر البيانات يتيح لك إنشاء مصدر جديد باستخدام خيار [مصدر بيانات جديد]:

Image

الاسم [odbc-firebird-articles]
أي اسم. هنا استخدمنا اسم مصدر ODBC
نوع قاعدة البيانات [odbc]
يدعم OpenOffice أنواعًا مختلفة من قواعد البيانات عبر JDBC أو ODBC أو مباشرة (MySQL و Dbase وغيرها). في مثالنا هذا، حدد ODBC
عنوان URL لمصدر البيانات
يتيح لنا الزر الموجود على يمين حقل الإدخال الوصول إلى قائمة مصادر ODBC الموجودة على الجهاز. نختار المصدر [odbc-firebird-articles]
  • ننتقل إلى لوحة [ODBC] لتحديد المستخدم الذي سيتم إجراء الاتصال باستخدام بيانات اعتماده:

Image

اسم المستخدم [sysdba]
مالك مصدر ODBC
  • انتقل إلى لوحة [Tables]. سيُطلب منك إدخال كلمة المرور. هنا، هي [masterkey]:

Image

  • انقر فوق [موافق]. ثم يتم عرض قائمة الجداول الموجودة في مصدر ODBC:

Image

  • يمكنك تحديد الجداول التي سيتم عرضها في مستند [OpenOffice]. هنا، نحدد الجدول [ARTICLES] ونضغط على [موافق]. يكون تعريف مصدر البيانات قد اكتمل. ثم يظهر في قائمة مصادر البيانات للمستند النشط:

Image

  • يمكنك سحب الجدول [ARTICLES] من الأعلى إلى مستند [OpenOffice] باستخدام الماوس:

Image

3.11. سلسلة الاتصال لمصدر Firebird ODBC

  • قم بتشغيل Visual Studio وافتح مستكشف الخادم [View/Server Explorer]:
  • انقر بزر الماوس الأيمن على [Data Connection] واختر خيار [Add Connection]:

Image

  • في لوحة [المزود]، حدد أنك تريد استخدام مصدر ODBC (انظر أعلاه)، ثم انتقل إلى لوحة [الاتصال]:

Image

استخدام اسم مصدر البيانات
[demo-odbc-firebird]
حدد مصدر ODBC من القائمة المنسدلة. يجب أن يظهر المصدر الذي أنشأته للتو. إذا لزم الأمر، استخدم [تحديث] لتحديث قائمة مصادر ODBC.
اسم المستخدم [SYSDBA]
اسم المستخدم الذي سيتم استخدامه للاتصال بقاعدة البيانات
كلمة المرور [masterkey]
كلمة المرور المرتبطة باسم المستخدم هذا

وهنا أيضًا، يتيح لك زر [اختبار الاتصال] التحقق من صحة المعلومات:

Image

  • أكد المعالج بالنقر فوق [موافق]. ثم يظهر مصدر البيانات في نافذة [مستكشف الخادم] في Visual Studio:

Image

  • بالنقر المزدوج على الجدول [ARTICLES]، يمكنك الوصول إلى بيانات الجدول:

Image

  • إذا نقرنا بزر الماوس الأيمن على الرابط [Firebird Server D:\temp\... ] واخترنا الخيار [Properties]، يمكننا الوصول إلى خصائص الاتصال:

Image

  • تعد [ConnectString] خاصية مهمة يجب معرفتها لأن كود .NET يحتاجها لفتح اتصال بالقاعدة البيانات. هنا، سلسلة الاتصال هي:
Provider=MSDASQL.1;Persist Security Info=False;User ID=SYSDBA;Data Source=demo-odbc-firebird;Extended Properties="DSN=demo-odbc-firebird;Driver=Firebird/InterBase(r) driver;Dbname=D:\temp\07-04-05\firebird\DBARTICLES.GDB;CHARSET=NONE;UID=SYSDBA"

تحتوي العديد من عناصر سلسلة الاتصال هذه على قيم افتراضية. وستكفي سلسلة الاتصال التالية:

"DSN=demo-odbc-firebird;UID=SYSDBA;PASSWORD=masterkey"

وبهذا نختتم نظرة عامة على برنامج تشغيل ODBC [Firebird].

3.12. أين يمكنك العثور على MSDE ؟

MSDE هو الإصدار المجاني من نظام إدارة قواعد البيانات SQL Server من Microsoft. يمكن العثور عليه على الرابط [http://www.microsoft.com/sql/msde/downloads/download.asp]:

قم بتنزيل ملف التثبيت، ثم قم بتثبيت نظام إدارة قواعد البيانات (DBMS) بالنقر المزدوج على الملف القابل للتنفيذ الذي تم تنزيله. ستظهر نافذة تطلب منك تحديد مجلد التثبيت. العنوان مضلل. هذا مجلد مؤقت يمكن حذفه لاحقًا:

اقرأ ملف [ReadmeMSDE2000A.htm] بعناية. المثبت هو [setup.exe] أعلاه. يتم تشغيله من سطر الأوامر بحيث يمكنك تمرير المعلمات إليه. أهمها كما يلي:

المعلمة
الوصف

SAPWD="StrongPassword"
يحدد كلمة مرور قوية لتعيينها إلى تسجيل دخول المسؤول "sa".

INSTANCENAME="InstanceName"
يحدد اسم المثيل. إذا لم يتم تحديد INSTANCENAME، يقوم المثبت بتثبيت مثيل افتراضي.

المعلمات الأخرى التي تُستخدم غالبًا لتخصيص التثبيت هي:

المعلمة
الوصف
DISABLENETWORKPROTOCOLS=n
يحدد ما إذا كانت المثيل ستقبل اتصالات الشبكة من التطبيقات التي تعمل على أجهزة كمبيوتر أخرى. بشكل افتراضي، أو إذا حددت DISABLENETWORKPROTOCOLS=1، يقوم المثبت بتكوين المثيل لرفض اتصالات الشبكة. حدد DISABLENETWORKPROTOCOLS=0 لتمكين اتصالات الشبكة.
SECURITYMODE=SQL
يحدد أنه يجب تثبيت المثيل في الوضع المختلط، مما يعني أن المثيل يدعم كل من مصادقة Windows ومصادقة SQL للاتصالات

DATADIR="مسار_مجلد_البيانات"
يحدد المجلد الذي يقوم المثبت بتثبيت قواعد بيانات النظام وسجلات الأخطاء وبرامج التثبيت النصية فيه. يجب أن تنتهي القيمة المحددة لـ data_folder_path بشرطة مائلة عكسية (\). بالنسبة للمثيل الافتراضي، يضيف المثبت MSSQL\ إلى القيمة المحددة. بالنسبة للمثيل المسمى، يضيف المثبت MSSQL$InstanceName\، حيث InstanceName هي القيمة المحددة عبر المعلمة INSTANCENAME. يقوم المثبت بإنشاء ثلاثة مجلدات في الموقع المحدد: مجلد Data ومجلد Log ومجلد Script.

TARGETDIR="executable_folder_path"
يحدد المجلد الذي يقوم المثبت بتثبيت ملفات MSDE 2000 القابلة للتنفيذ فيه. يجب أن تنتهي القيمة المحددة لـ executable_folder_path بشرطة مائلة عكسية (\). بالنسبة للمثيل الافتراضي، يضيف المثبت MSSQL\Binn إلى القيمة المحددة. بالنسبة للمثيل المسمى، يضيف المثبت MSSQL$InstanceName\Binn، حيث InstanceName هي القيمة المحددة عبر المعلمة INSTANCENAME.

بعد قراءة توصيات التثبيت أعلاه، انتقل إلى المجلد الذي تم استخراج ملفات التثبيت إليه وأدخل الأمر DOS التالي (باستخدام نظام إدارة قواعد البيانات دون شبكة):

dos>setup INSTANCENAME="MSDE140405" SECURITYMODE=SQL SAPWD="azerty"
  • INSTANCENAME="MSDE140405" - سيكون هذا هو اسم مثيل MSDE الخاص بنا. يمكنك تثبيت مثيلات متعددة.
  • SECURITYMODE=SQL - سيتم تشغيل نظام إدارة قواعد البيانات (DBMS) في وضع المصادقة المختلطة. يتيح لك ذلك الاتصال بـ MSDE بطريقتين:
    • باستخدام حساب مسؤول Windows
    • باستخدام حساب MSDE — وفي هذه الحالة، يلزم إدخال اسم المستخدم وكلمة المرور. هذا هو الوضع الذي يجب استخدامه في البرنامج الذي يتصل بقاعدة البيانات.
  • SAPWD="azerty" - ستكون هذه كلمة المرور لمستخدم نظام إدارة قواعد البيانات [sa]. يتمتع المستخدم [sa] بحقوق إدارية على نظام إدارة قواعد البيانات.

لاستخدام نظام إدارة قواعد البيانات (DBMS) على شبكة، عليك إصدار الأمر التالي:

dos>setup INSTANCENAME="MSDE140405" SECURITYMODE=SQL SAPWD="azerty" DISABLENETWORKPROTOCOLS=0

برنامج التثبيت بسيط للغاية ويكتمل دون أي مخرجات... ومع ذلك، يمكنك التحقق من تثبيت نظام إدارة قواعد البيانات (DBMS) عبر الخيار [قائمة ابدأ -> لوحة التحكم -> إضافة أو إزالة البرامج]:

Image

يتم التثبيت عادةً في C:\Program Files\Microsoft SQL Server\MSSQL$instanceName:

في المجلد [LOG] الموجود داخل دليل التثبيت، ستجد ملف السجل الخاص بمرحلة تثبيت نظام إدارة قواعد البيانات (DBMS). ويحتوي هذا الملف على معلومة مهمة، وهي اسم مثيل MSDE:

2005-04-14 08:14:29.37 spid4     Le nom du serveur est «PORTABLE1_TAHE\MSDE140405».

من المهم معرفة هذا الاسم لأن جميع عملاء DBMS سيحتاجون إليه. إذا كانت هذه السجلات مفقودة، يمكنك العثور على اسم خادم MSDE، وهو [windows_machine\MSDE_instance_name]. يتوفر اسم الجهاز في عدة أماكن. على سبيل المثال:

  • انقر بزر الماوس الأيمن فوق [جهاز الكمبيوتر] على سطح المكتب، وحدد [خصائص]، ثم علامة التبويب [اسم الكمبيوتر]:

Image

ما زلنا لا نعرف كيفية بدء تشغيل خادم MSDE. عادةً ما يتم وضع اختصار في [ابدأ/تشغيل].

Image

إذا نظرت إلى خصائص هذا الاختصار، ستجد أن الهدف هو كما يلي:

"C:\Program Files\Microsoft SQL Server\80\Tools\Binn\sqlmangr.exe" /n

في المجلد [C:\Program Files\Microsoft SQL Server]، توجد مجلدات فرعية:

Image

  • MSSQL$MSDE140405 هو المجلد الخاص بمثيل MSDE الذي قمنا بتثبيته للتو.
  • MSSQL هو المجلد الخاص بمثيل MSDE سابق. ونظرًا لعدم وجود اسم له، فإننا نسميه المثيل الافتراضي.
  • المجلد [80] هو مجلد مشترك لمختلف مثيلات MSDE المثبتة. يوجد الهدف [sqlmangr.exe] للاختصار الذي يقوم بتشغيل مثيل MSDE في المجلد [80\Tools\Binn].
دعونا نطلق MSDE عبر الاختصار الموجود في [ابدأ -> البرامج -> بدء التشغيل]. لا يحدث أي شيء تقريبًا باستثناء ظهور رمز في شريط المهام:
انقر نقرًا مزدوجًا على هذا الرمز:
خادم MSDE الموضح هنا هو الخادم الافتراضي
[PORTABLE1_TAHE] على الجهاز. تذكر أن
خادم MSDE الذي قمنا بتثبيته يسمى
[PORTABLE1_TAHE\MSDE140405]. نقوم بتغيير
اسم الخادم في الحقل المناسب:
إذا سارت الأمور على ما يرام، يجب أن يتم تشغيل مثيل [MSDE140405]:

يمكننا إجراء فحص أولي. في نفس المجلد الذي يوجد فيه [sqlmangr.exe]، يوجد عميل وحدة التحكم [osql.exe] الذي يسمح لك بالاتصال بخادم MSDE وتنفيذ أوامر SQL. أثناء التثبيت، قمنا بتعيين كلمة المرور [azerty] للمسؤول [sa] لخادم MSDE الخاص بنا. باستخدام عميل وحدة التحكم، سنقوم بالاتصال بالخادم المثبت حديثًا. إذا قمنا بتشغيل الأمر [osql -?]، فسيتم عرض قائمة بالمعلمات الممكنة:

C:\Program Files\Microsoft SQL Server\80\Tools\Binn>osql -?
utilisation : osql
  [-U ID de connexion]
  [-P mot de passe]
  [-S serveur]
  [-H nom de l'host]
  [-E connexion approuvée]
  [-d utiliser le nom de la base de données]
  [-l limite du temps de connexion]
  [-t limite du temps de requête]
  [-h en-têtes]
  [-s séparateur de colonnes]
  [-w largeur de colonne]
  [-a taille du paquet]
  [-e entrée d'echo]
  [-I Activer les identificateurs marqués]
  [-L liste des serveurs]
  [-c fin de cmd]           [-D nom ODBC DSN]
  [-q "requête cmdline"]
  [-Q "requête cmdline" et quitter]
  [-n supprimer la numérotation]
  [-m niveau d'error]
  [-r msgs vers stderr]
  [-V severitylevel]
  [-i fichier d'entry]
  [-o fichier de sortie]
  [-p imprimer les statistiques]  [-b abandon du lot d'instruction after error]

  [-X[1] désactive les commandes [et quitte avec un avertissement]]
  [-O utiliser le comportement Old ISQL désactive les éléments suivants]
      <EOF> traitement par lot d'instructions
      Mise à l'automatic console width scaling
      Messages larges
      niveau d'default error -1 instead of 1
  [-? description de la syntaxe]

ابدأ تشغيل الخادم [MSDE140405] كما هو موضح أعلاه، ثم في نافذة موجه الأوامر، استخدم [osql] للاتصال بالخادم [portable1_tahe\msde140405] تحت الهوية [sa, azerty]:

C:\Program Files\Microsoft SQL Server\80\Tools\Binn>OSQL.EXE -U sa -S portable1_tahe\msde140405 -P azerty
1>

تشير العلامة [1>] إلى أن [osql] في انتظار أمر. لقد تم الاتصال بنجاح. لاستخدام [osql] بشكل صحيح، يجب الرجوع إلى وثائق MSDE. وهي متوفرة في صيغ مختلفة (PDF، HTML Help، إلخ). هذه الوثائق شاملة للغاية. بشكل عام، يُفضل استخدام عميل رسومي للعمل مع قاعدة بيانات MSDE. وهذا ما يُقترح لاحقًا. للخروج من [osql]، استخدم الأمر [exit]:

1> exit

سنرى الآن كيفية إنشاء قواعد بيانات على خادم MSDE المثبت حديثًا. قبل ذلك، سنقدم بإيجاز أداة تسمى [MSDE Manager] تتيح لك تغيير وضع المصادقة لخادم MSDE. في الواقع، إذا قمت بتثبيت مثل هذا الخادم باستخدام خيارات التثبيت الافتراضية، يتم تعيين وضع المصادقة للخادم على [مصادقة Windows]. لا يسمح هذا النوع من المصادقة إلا للمستخدمين الذين تم تحديدهم على جهاز Windows (ربما عبر مجال). بالنسبة لبرنامج VB.NET الذي يرغب في الاتصال بقاعدة بيانات لاستخدام محتواها، فإن هذا الوضع غير عملي. بل إنه أسوأ بالنسبة لتطبيقات Java التي تصل إلى نظام إدارة قواعد البيانات (DBMS) عبر برنامج تشغيل JDBC. في مثل هذه الحالات، يُفضل المصادقة المختلطة، لأنها تقبل أزواج اسم المستخدم/كلمة المرور المحددة في نظام إدارة قواعد البيانات (DBMS) بالإضافة إلى طريقة المصادقة السابقة. تتيح لك أداة [MSDE Manager] إجراء هذه العملية.

3.13. أين يمكنني العثور على MSDE Manager؟

[MSDE Manager] هي أداة إدارة لنظام إدارة قواعد البيانات MSDE. يمكن العثور عليها على الرابط [http://www.valesoftware.com/].

نقوم بتنزيل الإصدار المجاني من خلال اتباع الرابط أعلاه:

Image

Image

النسخة التجريبية لها مدة صلاحية قصيرة. وهذا لا بأس به لأننا سنستخدمها لمهمة واحدة محددة فقط. قم بتنزيل المنتج وتثبيته. سيتم وضع اختصار على سطح المكتب. استخدمه لتشغيل MSDE Manager. بعد النوافذ الأولية، ستصل إلى هذه النافذة:

Image

  • ابدأ تشغيل خادم MSDE140405
  • يجب أن تكون مسجلاً الدخول إلى جهاز Windows كمسؤول
  • انقر بزر الماوس الأيمن على رابط [SQL Server Group] واختر خيار [New SQL Server Registration]:

Image

Image

تظهر صفحة الخصائص التالية:

اسم الخادم
portable1_tahe\msde140405 - اسم مثيل MSDE الذي تريد الاتصال به
الاتصال
مصادقة Windows - هذا الوضع متاح دائمًا ويسمح لمسؤول جهاز Windows بالاتصال بخادم MSDE
مجموعة الخوادم
حدد مجموعة الخوادم الوحيدة المدرجة [مجموعة خوادم SQL]

بمجرد النقر فوق [موافق]، يتم عرض شجرة الخصائص لخادم MSDE140405:

Image

يمكننا البدء في إنشاء قواعد البيانات. لن نقوم بذلك لأننا سنستخدم منتجًا آخر، وهو نسخة مطابقة لمنتج IBExpert الذي تناولناه سابقًا. سنقوم ببساطة بتغيير وضع مصادقة MSDE. انقر بزر الماوس الأيمن على خادم MSDE140405 أعلاه واختر الخيار [Design]:

Image

تظهر لنا نافذة المعلومات التالية:

Image

توفر علامة التبويب [General] معلومات حول خادم MSDE الذي تتصل به. صفحة [Security] هي التي تهمنا:

Image

هنا، يجب التأكد من ضبط وضع مصادقة MSDE على [SQL Server و Windows]. سيسمح لك ذلك بالاتصال بـ MSDE بطريقتين:

  • باستخدام حساب مسؤول Windows — وهو ما تم هنا
  • باستخدام حساب MSDE — حيث يُطلب عندئذٍ اسم مستخدم وكلمة مرور. هذا هو الوضع الذي يجب استخدامه في برنامج يتصل بقاعدة بيانات DBMS.

نؤكد هذا الاختيار ونخرج من MSDE Manager. لن نحتاج إليه بعد الآن. لإنشاء قواعد بيانات MSDE، سنستخدم أداة أخرى: EMS MS SQL Manager.

3.14. أين يمكنك العثور على EMS MS SQL Manager؟

EMS MS SQL Manager هي أداة رسومية مخصصة للعمل مع نظام إدارة قواعد البيانات Microsoft SQL Server، وبالتالي مع MSDE. وهي تشبه إلى حد كبير أداة IB-Expert التي تم وصفها سابقًا. وهي متاحة على الرابط [http://sqlmanager.net/] (نيسان/أبريل 2005):

Image

يقدم الموقع أدوات إدارة للعديد من أنظمة إدارة قواعد البيانات. اتبع رابط [MS SQL Manager]:

Image

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

Image

الملف القابل للتنفيذ هو [MsManager.exe]. عادةً ما يتوفر اختصار في قائمة [ابدأ]:

Image

بمجرد تشغيله، يعرض MS SQL Manager النافذة التالية:

Image

لنبدأ بتسجيل خادم MSDE الذي نريد العمل معه باستخدام خيار [Database/Register Host]:

تعليقات:

  • الخطوة 1 - كما ذكرنا، يدعم MSDE وضعين للمصادقة: Windows و SQL Server. في وضع [Windows]، يتم استخدام حسابات جهاز Windows. في وضع [SQL Server]، يتم استخدام حسابات نظام إدارة قواعد البيانات (DBMS). يمكن لـ [SQL Server] العمل في وضع [Windows] أو في وضع مختلط [Windows، SQL Server]. وضع المصادقة [Windows] متاح دائمًا. ومع ذلك، فإن وضع المصادقة المختلط ليس نشطًا دائمًا. لقد رأينا كيفية تمكينه باستخدام MSDE Manager. أعلاه، تم إجراء الاتصال باستخدام حساب مسؤول.
  • الخطوة 2 - بمجرد نجاح المصادقة، يتم عرض قواعد بيانات MSDE الافتراضية. أعلاه، تم تحديدها جميعًا.

تعليقات:

  • الخطوة 3: يمكن اختيار خيارات الإدارة للقاعدة البيانات المحددة. هنا، تم الاحتفاظ بالخيارات الافتراضية.
  • الخطوة 4: نقوم بتسجيل خادم MSDE باستخدام الزر [تسجيل]

ثم يظهر خادم MSDE في مستكشف قواعد البيانات:

Image

دعونا نستخدم خيار [قاعدة البيانات/إنشاء قاعدة بيانات] لإنشاء قاعدة بيانات:

الخطوة 2:

عندما تظهر صفحة المعلومات هذه، يكون قد تم إنشاء قاعدة البيانات [dbarticles]. يمكنك التحقق من ذلك بالنقر فوق الزر [اختبار الاتصال]. في حقل [اسم مستعار قاعدة البيانات]، يمكنك إدخال ما تريد. هنا، قمنا بإدخال:

  • اسم قاعدة البيانات
  • اسم خادم MSDE الذي توجد عليه
  • المستخدم [admarticles] الذي سيمتلك قاعدة البيانات هذه وكلمة المرور الخاصة به [mdparticles]. لم يتم إنشاء هذا المستخدم بعد، ولكن سيتم إنشاؤه قريبًا.

الخطوة 3:

  • انقر على زر [تسجيل] لتسجيل قاعدة البيانات الجديدة في [MS SQL Server]. بعد التسجيل، تظهر قاعدة البيانات [admarticles] في قائمة قواعد البيانات. يؤدي النقر المزدوج عليها إلى عرض شجرة خصائصها.

لنقم بإنشاء حساب تسجيل دخول جديد ليكون المسؤول عن قاعدة البيانات [admarticles].

  • اختر خيار [أدوات/مدير حسابات الدخول]:

Image

  • يمكننا أن نرى أن هناك حسابين مسجلين بالفعل:
    • [BUILTIN\Administrators]: يستخدم هذا الحساب مصادقة Windows. وهو يمثل مسؤولي جهاز Windows الذي يوجد عليه خادم MSDE
    • sa: يستخدم هذا الحساب مصادقة SQL. بشكل افتراضي، هو المسؤول عن خادم MSDE. لاحظ أنه هنا، كما تم تكوينه أثناء تثبيت نظام إدارة قواعد البيانات MSDE، كلمة المرور الخاصة به هي [azerty].
  • انقر بزر الماوس الأيمن على منطقة تسجيلات الدخول وأضف تسجيل دخول جديد:
  • يظهر نموذج نحدد فيه خصائص تسجيل الدخول الجديد:

Image

  • اسم المستخدم: admarticles
  • كلمة المرور: mdparticles
  • بمجرد النقر على زر [OK]، يعرض MS Manager استعلامات SQL التي سيقوم بتنفيذها:

Image

لغة SQL الموضحة أعلاه هي Transact-SQL، وهي لغة SQL التي يستخدمها MSDE. نقوم بتنفيذ هذا الرمز بالنقر فوق [OK]

  • يتم إضافة تسجيل الدخول الجديد إلى قائمة تسجيلات الدخول:

Image

  • في نافذة خصائص قاعدة البيانات [dbarticles]، انقر بزر الماوس الأيمن على [users] لإنشاء مستخدم يتمتع بأذونات على قاعدة البيانات [dbarticles]:

Image

  • ثم تظهر النافذة التالية:

Image

  • في القائمة المنسدلة [Login]، سترى قائمة بتسجيلات الدخول الموجودة. حدد تسجيل الدخول [admarticles].
  • في [Name]، أدخل اسم مستخدم. يمكن ربط عدة مستخدمين بنفس اسم المستخدم. أيضًا، في MSDE، يتطلب إنشاء مستخدم أولاً إنشاء اسم مستخدم. تبدو لوحة [User] الآن كما يلي:

Image

  • الآن دعنا ننتقل إلى لوحة [Member Of]، والتي ستسمح لنا بتحديد أذونات المستخدم:

Image

  • أنا لست مستخدمًا منتظمًا لـ MSDE ولست متأكدًا من المعنى الدقيق لكل دور من الأدوار المدرجة في الجزء الأيسر. دور [db_owner] يبدو مغريًا (owner = owner). لذلك سنختاره لمستخدمنا [admarticles]:

Image

  • نؤكد اختياراتنا بالنقر فوق الزر [Compile] أعلاه. استعلامات SQL التي تم تنفيذها هي كما يلي:

Image

  • نقوم بتجميعها بالنقر فوق [OK]. لدينا الآن مستخدم لقاعدة البيانات [dbarticles]:

Image

  • الآن لنقم بإنشاء جدول. انقر بزر الماوس الأيمن على [Tables] واختر خيار [New Table]. سيؤدي ذلك إلى فتح نافذة تعريف خصائص الجدول:

Image

  • لنبدأ بتسمية الجدول [ARTICLES] باستخدام حقل الإدخال [Table Name]. بعد ذلك، انتقل إلى لوحة [Fields]:

Image

  • حدد الحقول التالية:

Image

لن يتم إنشاء الجدول حتى ننتهي من "تجميع" تعريفنا. استخدم زر [Compile] أعلاه لإنهاء تعريف الجدول. يقوم [MS SQL Manager] بإعداد استعلامات SQL لإنشاء الجدول ويطلب التأكيد:

Image

ومن المثير للاهتمام أن [MS SQL Manager] يعرض استعلامات SQL التي نفذها. وهذا يتيح لك تعلم لغة Transact-SQL. يقوم زر [Commit] بالتحقق من صحة المعاملة الحالية، بينما يقوم زر [Rollback] بإلغائها. هنا، نقبلها بالنقر فوق [Commit]. وبمجرد الانتهاء من ذلك، يضيف [MS SQL Manager] الجدول الذي تم إنشاؤه إلى شجرة قاعدة البيانات لدينا:

Image

بالنقر المزدوج على الجدول، يمكننا الوصول إلى خصائصه:

Image

تسمح لنا لوحة [Checks] بإضافة قيود تكامل جديدة إلى الجدول. بالنسبة لجدول [ARTICLES]، سننشئ القيود التالية:

  • يجب أن تكون الحقول [ID، PRICE، CURRENTSTOCK، MINIMUMSTOCK] >=0
  • يجب ألا يكون الحقل [NAME] فارغًا

في لوحة [Checks]، انقر بزر الماوس الأيمن على المنطقة الفارغة لإضافة قيد جديد [New check]:

Image

  • تبدو ورقة تحرير القيد كما يلي:

Image

الاسم: اسم القيد

الجدول: الجدول الذي ينطبق عليه القيد

التعريف: تعبير القيد

يتم ترجمة القيد باستخدام الزر [ترجمة] أعلاه.

  • مرة أخرى، يعرض [MS SQL Manager] أوامر SQL التي تم تنفيذها:

Image

  • نقوم بالتحقق من صحتها باستخدام الزر [Commit] (غير معروض). إذا عدنا إلى لوحة [Checks] الخاصة بالجدول [ARTICLES]، يظهر القيد الجديد:

Image

  • نقوم بتعريف القيود الأخرى بنفس الطريقة لنحصل في النهاية على القائمة التالية:

Image

بمجرد الانتهاء من ذلك، افتح لوحة [DDL] الخاصة بجدول [ARTICLES]:

Image

تعرض هذه اللوحة كود Transact-SQL لإنشاء الجدول مع جميع قيوده. يمكنك حفظ هذا الكود في نص برمجي لتشغيله لاحقًا:

CREATE TABLE [ARTICLES] (
  [id] int NOT NULL,
  [nom] varchar(20) COLLATE French_CI_AS NOT NULL,
  [prix] float(53) NOT NULL,
  [stockactuel] int NOT NULL,
  [stockminimum] int NOT NULL,
  CONSTRAINT [ARTICLES_uq] UNIQUE ([nom]),
  PRIMARY KEY ([id]),
  CONSTRAINT [ARTICLES_ck_id] CHECK ([id] > 0),
  CONSTRAINT [ARTICLES_ck_nom] CHECK ([nom] <> ''),
  CONSTRAINT [ARTICLES_ck_prix] CHECK ([prix] >= 0),
  CONSTRAINT [ARTICLES_ck_stockactuel] CHECK ([stockactuel] >= 0),
  CONSTRAINT [ARTICLES_ck_stockminimum] CHECK ([stockminimum] >= 0)
)
ON [PRIMARY]
GO

حان الوقت الآن لإدخال بعض البيانات في جدول [ARTICLES]. للقيام بذلك، استخدم لوحة [Data] الخاصة به:

Image

يضيف الزر [+] صفًا، ويزيل الزر [-] صفًا. يتم إدخال البيانات ببساطة عن طريق الكتابة في حقول الإدخال لكل صف في الجدول. يتم التحقق من صحة الصف باستخدام الزر [Post Edit] أدناه:

Image

لنقم بإنشاء عنصرين:

Image

يتيح لك [MS SQL Manager] تشغيل استعلامات SQL عبر خيار [Tools/Show SQL Editor] أو [F12]. يمنحك هذا إمكانية الوصول إلى محرر استعلامات SQL متقدم حيث يمكنك تشغيل الاستعلامات. يتم حفظ الاستعلامات، لذا يمكنك العودة إلى استعلام قمت بتشغيله مسبقًا. إليك مثال على ذلك:

Image

قم بتنفيذ استعلام SQL باستخدام الزر [Execute] أعلاه. ستحصل على النتيجة التالية:

Image

سنوقف عروضنا التوضيحية هنا. إن تركيبة [MS SQL Manager - MSDE]، تمامًا مثل تركيبة [IBExpert - Firebird]، ممتازة أيضًا لتعلم قواعد البيانات.

3.15. إنشاء مصدر ODBC [MSDE]

عادةً ما يتم تثبيت برنامج تشغيل ODBC لـ SQL Server بشكل افتراضي على أجهزة Windows.

  • قم بتشغيل الأداة [ابدأ -> إعدادات -> أدوات التكوين -> أدوات الإدارة -> مصادر بيانات ODBC]:

Image

  • تظهر النافذة التالية:

Image

  • انقر فوق [إضافة] لإضافة مصدر بيانات نظام جديد (في جزء [DSN النظام]) سنربطه بقاعدة بيانات MSDE التي أنشأناها في القسم السابق:

Image

  • أولاً، نحتاج إلى تحديد برنامج تشغيل ODBC الذي سنستخدمه. أعلاه، نختار برنامج التشغيل لـ [SQL Server] ثم نضغط على [إنهاء]. بعد ذلك، يتولى معالج برنامج تشغيل ODBC لـ [SQL Server] المهمة:

Image

  • نقوم بملء الحقول المختلفة:
الاسم [odbc-msde-articles]
اسم مصدر ODBC — يمكن أن يكون أي شيء
الوصف
يمكن أن يكون أي شيء
خادم SQLMap
portable_tahe\msde140405
اسم خادم MSDE الذي يحتوي على بيانات مصدر ODBC
  • انقر فوق [التالي] لتقديم معلومات إضافية:

Image

  • املأ الحقول المختلفة:
مصادقة SQL Server
حدد أنك ستتصل بمصدر بيانات ODBC باستخدام اسم مستخدم مسجل على خادم MSDE
معرف تسجيل الدخول [admarticles]
تسجيل دخول المستخدم
كلمة المرور [mdparticles]
كلمة مرور المستخدم
  • لاحظ أن هذه هي المرة الأولى التي نستخدم فيها المستخدم (admarticles، mdparticles) الذي تم إنشاؤه في قسم سابق. انقر على [التالي] مرة أخرى للانتقال إلى الشاشة التالية:

Image

  • نقوم بملء الحقول المختلفة:
تغيير قاعدة البيانات...
نختار قاعدة البيانات [dbarticles] لتكون قاعدة البيانات الافتراضية للمستخدم [admarticles]
  • انقر على [التالي] للانتقال إلى الشاشة التالية:

Image

  • نقبل القيم الافتراضية ونضغط على [إنهاء]. يتم عرض ملخص لخصائص مصدر ODBC الذي سيتم إنشاؤه:

Image

  • يتيح لنا زر [اختبار مصدر البيانات] التحقق من صحة معلوماتنا. تحقق من أن MSDE قيد التشغيل، ثم اختبر الاتصال:

Image

  • نحن الآن على يقين من أن الزوج [admarticles, mdparticles] قد تم التعرف عليه.

لإجراء مزيد من الاختبارات، يمكن للقارئ اتباع الإجراء الموضح في القسم 3.10.

3.16. سلسلة الاتصال بقاعدة بيانات MSDE

  • قم بتشغيل Visual Studio وافتح مستكشف الخادم [عرض/مستكشف الخادم]:
  • انقر بزر الماوس الأيمن على [اتصال البيانات] واختر خيار [إضافة اتصال]:

Image

  • في جزء [الموفر]، حدد أنك تريد استخدام مصدر SQL Server، ثم انتقل إلى جزء [الاتصال]. لاحظ أننا لا نستخدم برنامج تشغيل ODBC هنا.

Image

اسم الخادم
[portable1_tahe\msde140405]
اسم خادم MSDE الذي تتصل به
اسم المستخدم [admarticles]
اسم المستخدم الذي سيتم استخدامه للاتصال بقاعدة البيانات
كلمة المرور [mdparticles]
كلمة المرور المرتبطة باسم المستخدم هذا
قاعدة البيانات [dbarticles]
قاعدة البيانات التي تريد العمل بها

يتيح لك زر [اختبار الاتصال] التحقق من صحة المعلومات:

Image

  • أكد المعالج بالنقر فوق [موافق]. ومن الغريب أن نافذة جديدة تطلب تفاصيل الاتصال:

Image

  • أدخلها مرة أخرى وانقر على [موافق]. ثم يظهر مصدر البيانات في نافذة [مستكشف الخادم] في Visual Studio:

Image

  • بالنقر المزدوج على الجدول [ARTICLES]، يمكنك الوصول إلى بيانات الجدول:

Image

  • إذا نقرنا بزر الماوس الأيمن على الرابط [portable1_tahe\msde140405.dbarticles.admarticles] في جزء [مستكشف الخادم] واخترنا الخيار [خصائص]، يمكننا عرض خصائص الاتصال:

Image

  • تعد [ConnectString] خاصية مهمة يجب معرفتها لأن كود .NET يحتاجها لفتح اتصال بالقاعدة البيانات. هنا، سلسلة الاتصال هي:
Provider=SQLOLEDB.1;Persist Security Info=False;User ID=admarticles;Initial Catalog=dbarticles;Data Source=portable1_tahe\msde140405;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=PORTABLE1_TAHE;Use Encryption for Data=False;Tag with column collation when possible=False

تحتوي العديد من عناصر سلسلة الاتصال هذه على قيم افتراضية. وستكفي سلسلة الاتصال التالية:

"Provider=SQLOLEDB.1;Persist Security Info=False;User ID=admarticles;Initial Catalog=dbarticles;Data Source=portable1_tahe\msde140405;PASSWORD=mdparticles"