الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

استخدام مكتبات ال Dot Net الخاصة بك في ال Sql Server 2005 !

مغلق
بدأه imadouzoun في 12 ديسمبر 2006 · 1 رد · 2,200 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته :

إخواني الكرام دعوني أمهد كالتالي :

مع تزايد أهمية العمل مع الـ (Common Language Run-Time)

أو اختصاراً CLR و الإستفادة من الكود المدار بالحد الأقصى بدأت MicroSoft تعمل على جعل Sql Server

تستفيد أيضاً من مقدرات بيئة الـ Dot Net الغنية عن التعريف في الوقت الراهن ..

فأصبح لدينا الآن ما تسميه MicroSoft ( باستضافة Sql Server 2005 لـ بيئة Dot Net ) ..

على كل لن أطيل كثيراً في كلام نظري .. و سأبدأ بمثال عملي واقعي ..

بسم الله نبدأ :

لنفتح الآن Visual Studio و لنقم بكتابة كلاس بسيط :

ستجد مع المرفقات مشروع بسيط بلغة C# قمت بإنشائه لبناء مكتبة DLL والتي سنستخدم دوالها في الـ Sql Server 2005 .

قم بالدخول إلى المسار bin\Release داخل مجلد المشروع لتصل إلى مكتبة DLL اسمها dllStart.dll

هل وجدتها ؟ .. سأفترض ذلك و أكمل .. إنسخ هذه المكتبة و ضعها على السواقة ( \:C ) على حاسبك لكي نسهّل كتابة المسارات ..

لنفتح الآن ( Sql Server Management Studio ) الخاص بالـ ( Sql Server 2005 ) ..

طبعاً نسخة Developer مش الـ Express .. :)

و ننشئ قاعدة بيانات لتجربتنا و لتكن : test_2005

و لكن ماذا بعد ؟

إبدأ New Query و ضع فيه الكود التالي ( بعد أن تقرأه ) :

Use test_2005
Go

-- تضمين المكتبة السابقة الذكر في قاعدة البيانات 
Create Assembly dllStart From 'C:\dllStart.dll'

Go

-- كالتالي CLR يجب عليك أن تفعل الخيار استخدام الـ 
EXEC sp_configure 'clr enabled', '1';
RECONFIGURE WITH OVERRIDE;

GO

--------------
-- كإجرائيات و دوال مخزنة في  قاعدة بياناتنا التي أنشأناها للتو DLL الآن دعنا نضمن الدوال و الإجرائية التي الموجودة في مكتبة الـ 

	create function Get_Number()
	Returns float
	External Name dllStart.CStart.Get_Number

	GO

-- test it
Select dbo.Get_Number() AS [Value]
	Go

--------------

	create function Cur_Date()
	Returns datetime
	External Name dllStart.CStart.[Current_Date]

	GO

-- test it
Select convert(Varchar(10), dbo.Cur_Date(), 103) AS [Current_date]
	Go

--------------

	Create function Get_Minutes( @dt NVarchar(10) )
	Returns NVarchar(10)
	External Name dllStart.CStart.Get_Minutes

	Go

-- test it
Select dbo.Get_Minutes('12:24') AS Minutes
	GO

--------------

	Create proc doWhile
	AS External Name dllStart.CStart.doWhile

	Go

-- test it
Exec doWhile
	GO

--------------

سيأتي التفصيل في مراحل قادمة لأن الطريقة فقط في Sql Server 2005 و لم تكن في

Sql Server 2000 لذا لا بد أن تكون مبهمة نوعاً ما على كثير من الإخوة ..

لكن إن شاء الله سنفصل في المستقبل القريب - إذا أحيانا الله لحينها - .

بالتوفيق :)

dllStart.zip

تم تعديل هذه المشاركة بواسطة imadouzoun في 14 ديسمبر 2006 في 20:07

دروس و كتب مفيدة----------------------كتيب الإجرائيات المخزنةتعرف على اللغة Transact SQL <<-->> كتيب عن تنصيب قواعد البيانات Sql Server باللغة العربية كتيب عن إنشاء قواعد البيانات في SQL Server باللغة العربية <<-->> درس مع الأمثلة عن المؤشرات و التعامل معها في الـ T-SQLالعبارات الشرطية و الحلقات في T-SQL <<-->> شرح لبعض الـ Extended Stored Procedure استخدام مكتبات الـ Dot Net الخاصة بك في الـ Sql Server 2005 <<-->> التعامل مع المصفوفات من خلال الـ T-SQLتعابير الجداول الشائعة في SQL Server 2005 <<-->>الاتصال بالأداة SQL Server Management Studioحلول سريعة و لمحات برمجية --------------------------------التصدير إلى إكسل : طريقة أولى : طريقة بسطر واحد من الكود <<-->> طريقة ثانية : طريقة تحتاج إنشاء إجرائية مخزنةً تجهيز بيانات جدول بالصيغة XML تمهيداً لحفظها كملف <<-->> تصدير البيانات إلى ملفات نصية برمجياً إغلاق جميع الإتصالات المفتوحة بقاعدة بيانات محددة .. تمهيداً لاسترجاعها أو حذفها <<-->> الاستعلام بناء على وقت مخزن بالصيغة العربية ضمن حقل نصي ..حذف السجلات المتكررة و إبقاء عدد محدد منها في جدول.. <<-->> أسرع طريقة لحذف سجلات جدول كيف احصل على اسم جهازي والباسوورد باستخدام T-SQL <<-->> حشر أنواع الصور المختلفة في حقل من نوع Image باستخدام إجرائية مخزنة .كيف تعرف أنواع الصور المخزنة في حقل من نوع Image .. <<-->> إجرائيات مخزنة ببارامترات ديناميكية مفيدة جداً للاستعلامات استخدام رقم الحقل بدلاً من الإسم في عبارات الإستعلام <<-->> من هو أضخم الجداول في قاعدة بياناتي ؟معرفة زمن تنفيذ الإجرائيات ( لتختار الطريقة الأسرع بين إجرائياتك المخزنة ) <<-->> التعامل مع الـ Rules برمجياً الحصول على آخر صف في الجدول <<-->> قراءة ملفات XML باستخدام T-SQL برمجياً (مثال مرفق)سحب بيانات ملف إكسل إلى الـ SQL Server <<-->> تشفير النسخة الاحتياطية بكلمة مرور <<-->> التخلص من البيانات المكررة <<-->> حل مشكلة التاريخ الهجريDifferential Backup بالتعريف---------- لا إله إلا الله .. محمد رسول الله

أخوكم في الله..  Imad Ozone

#2

كلام جميل -waf

هذا الموضوع مغلق.

مواضيع مشابهة