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

جلب البارمترات من قاعدة البيانات أتوماتيكياً

مغلق
بدأه Web-Dv في 3 يوليو 2006 · 4 رد · 560 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

طبعاً الكل يعرف أنه عليك وضع بارمترات كل إجرائية مخزنة تستعديها من قاعدة البينات وهذا أمر مزعج جداً

ففكرت ووصلت للحل يبدو أنه جيد من الوهلة الأولى لكن بعد قليل عرفت أنه غبي لكن مع ذلك قلت أسأل الإخوة هنا لعله حل جيد:

في كل قاعدة بيانات يتم تخزين أسماء الجداول والحقول والإجرائيات النخزنة وبرامتيرتاها ... إلخ

فقلت بنفسي لماذا لا أخذ أسماء البارمترات وأنواعها عن طريق جداول النظام وفعلاً عملتها ونجحت

لكن فكرت ماذا لو في إصدار سكول 2006 تم تغيير اسم جدول النظام هذا!!!!!

ماذا سيحدث في البرنامج سيفشل كله و سيتوقف عن العمل!

لكن هل من الممكن ان يتغير أسماء الجداول والحقول الخاصة بالنظام؟

وما رأيكم بالفكرة ككل ؟

تحياتي

تم تعديل هذه المشاركة بواسطة Web-Dv في 3 يوليو 2006 في 20:21

#2

السلام عليكم

من وجهة نظري المتواضعة , لا اظن انهم يغيرون في جداول الانظمة , وانما التغير في والوظائف وفي الاضافات

و إصلاح الاخطاء للنسخة التي سبقتها أو أضافة ميزات تغنيك عن خطوات كثيرة لتأدية المهمة ذاتها.

ولو تلاحظ أن التغير الذي حدث في SQL 2005 لم يمس الـ Core و انما قام ببعض الحماية و الترقية له.

سأحيلك لأهل الاختصاص لعلك تجد الجواب الكافي إن شاء الله.

لو عرضت النصوص البرمجية التي مكنتك من كيفية الوصول لجلب اسماء الممررات و الكائنات , لكان أفضل لنا جميعاً لنستفيد من خبراتكم

جزاك الله خيرا.

تم تعديل هذه المشاركة بواسطة الغملاسي في 4 يوليو 2006 في 04:25

في المثال يتضح المقال

#3
اقتباس
فقلت بنفسي لماذا لا أخذ أسماء البارمترات وأنواعها عن طريق جداول النظام وفعلاً عملتها ونجحت

ممكن تذكر الطريقة التي عملتها؟

حتى يمكن التأكد من أنها ستعمل في 2005 أم لا، وغالبا ستعمل.

فكر بطريقة أخرى

#4

السلام عليكم

شكراً’جزيلاً لردود

بهي فعلياً تعميل في 2005 لكن كان قصدي هل ستعمل في إصدارات جديد؟

وعلى أية حال هذا هو الكود لكن الكود ناقص لإنه يعتمد على كلاسات خارجية عموماص فكرته واضحة

Dim DtSpResult1, DtSpResult2 As Data.Datatable
		Dim St1, St2 As New NTS.DataBase.Selecttable("sp_sproc_columns")
		Dim I As Double

		Public Function GetSpParamsByName(ByVal strSpName As String) As String()
			Dim ParamsNames As String() = {"@procedure_name"}
			Dim ParamsValues As String() = {strSpName}
			DtSpResult1 = St1.GetDtFromSp("sp_sproc_columns", ParamsNames, ParamsValues)
			Dim ParamsNamesReturn(DtSpResult1.Rows.Count) As String
			For I = 1 To DtSpResult1.Rows.Count - 1
				ParamsNamesReturn(I - 1) = DtSpResult1.Rows(I)("Column_Name")
			Next I

			Return ParamsNamesReturn

		End Function

		Public Function GetSpParamsTypesByName(ByVal strSpName As String) As Data.SqlDbType()
			Dim ParamsNames As String() = {"@procedure_name"}
			Dim ParamsValues As String() = {strSpName}
			DtSpResult2 = St2.GetDtFromSp("sp_sproc_columns", ParamsNames, ParamsValues)
			Dim ParamsTypesReturn(DtSpResult2.Rows.Count - 2) As Data.SqlDbType
			For I = 1 To DtSpResult2.Rows.Count - 1
				ParamsTypesReturn(I - 1) = GetSqlTypeByNumber(DtSpResult2.Rows(I)("Data_Type"))
			Next I

			Return ParamsTypesReturn

		End Function

		Public Function GetSqlTypeByNumber(ByVal dblNum As Double) As SqlDbType
			Select Case dblNum
				Case 11
					Return SqlDbType.DateTime
				Case 4
					Return SqlDbType.Int
				Case -7
					Return SqlDbType.Bit
				Case -9
					Return SqlDbType.NVarChar
				Case 12
					Return SqlDbType.VarChar
				Case 7
					Return SqlDbType.Real
				Case 3
					Return SqlDbType.Money
			End Select
		End Function
#5

انا مااعتقد انو اسماء جدول النظام متغيرة

اعتقد انها ثابتة

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

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…