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

سؤال حول PROCEDURE

مغلق
بدأه waleedhm في 19 يوليو 2005 · 7 رد · 732 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

اخوانى هل يمكن عمل جملة استعلام بدون تحديد اسم Table و field فى الجملة

بمعنى اخر

انا بعمل فى الدت نت Function برسل ليها اسم الجدول والحقل ثم اقوم بتمرير اسم الجدول والحقل

السؤال هل يمكن عمل هذا فى اجراء مخزن

 Function Search(ByVal Table As String, ByVal field As String, ByVal Txt As String)

وبرسل ليها الجملة بلشكل التالى

"select * from " + Table + " where " + field + " like('" + Txt + "%')"

{وَاتَّقُواْ يَوْمًا تُرْجَعُونَ فِيهِ إِلَى اللّهِ ثُمَّ تُوَفَّى كُلُّ نَفْسٍ مَّا كَسَبَتْ وَهُمْ لاَ يُظْلَمُونَ} (281) سورة البقرة

br17.gif

برنامج الإتصلات الإدارية والارشيف الالكتروني

برنامج الخبير لنقاط البيع المباشرة

#2

و ما المشكلة ?

فى اخر الامر سيصبح لديك Dynamic SQL Statement

Technical Lead Developer

My LinkedIn Profile

اللهم قنى شر الجهل و الجهلاء

( اقْتَرَبَ لِلنَّاسِ حِسَابُهُمْ وَهُمْ فِي غَفْلَةٍ مَّعْرِضُونَ ) {الأنبياء:1}

#3

يا شباب اعتذر لان تعليقى باعلى خاطئ و ما زلت اقوم بالتجربة

Technical Lead Developer

My LinkedIn Profile

اللهم قنى شر الجهل و الجهلاء

( اقْتَرَبَ لِلنَّاسِ حِسَابُهُمْ وَهُمْ فِي غَفْلَةٍ مَّعْرِضُونَ ) {الأنبياء:1}

#4

استعمل الأمر EXEC sp_executesql و الذي يأخذ بارامتر varchar و يقوم بتنفيذه

#6

السلام عليكم

شكرا لكم جزاكم الله خيرا

{وَاتَّقُواْ يَوْمًا تُرْجَعُونَ فِيهِ إِلَى اللّهِ ثُمَّ تُوَفَّى كُلُّ نَفْسٍ مَّا كَسَبَتْ وَهُمْ لاَ يُظْلَمُونَ} (281) سورة البقرة

br17.gif

برنامج الإتصلات الإدارية والارشيف الالكتروني

برنامج الخبير لنقاط البيع المباشرة

#7

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

يمكن أستخدام هذا الكود

DROP PROCEDURE xsql_GetSelect
GO
CREATE PROCEDURE xsql_GetSelect
(
	@strTable nvarchar(50) = 'pubs..authors', 
	@strColumns nvarchar(4000) = NULL,
    @strWhere nvarchar(4000) = NULL,
    @strGroup nvarchar(4000) = NULL,
    @strOrder nvarchar(4000) = NULL,
    @strJoin nvarchar(4000) = NULL
)
AS
BEGIN
	DECLARE @ExecSelectQurey nvarchar(4000)

	-- 'Check if the user no pass parameter then get data from pubs..authors for avoid error'
	IF @strTable = 'pubs..authors'
	BEGIN
  SET @ExecSelectQurey = 'SELECT au_id FROM pubs..authors '
	END
	ELSE
  BEGIN
 	 SET @ExecSelectQurey = 'SELECT ' +@strColumns+' FROM ' +@strTable+' '

      IF @strJoin is not null
     	 SET @ExecSelectQurey = @ExecSelectQurey +@strJoin
  
      IF @strWhere is not null
     	 SET @ExecSelectQurey = @ExecSelectQurey + ' WHERE '+@strWhere
           	 
      IF @strGroup is not null
     	 SET @ExecSelectQurey = @ExecSelectQurey + ' GROUP BY '+@strGroup
           	 
      IF @strOrder is not null
     	 SET @ExecSelectQurey = @ExecSelectQurey + ' ORDER BY '+@strOrder
  END

    EXECUTE(@ExecSelectQurey)
    RETURN 0
END
GO

تم تعديل هذه المشاركة بواسطة sunwareinc في 6 أغسطس 2005 في 05:40

#8

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

يمكن أستخدام الأمثله الأتيه :

مع أفتراض وجود قاعدة بيانات pubs

EXEC xsql_GetSelect 'employee', 'emp_id, fname, job_id'
go

EXEC xsql_GetSelect 'employee', 'emp_id, fname, job_id', ' fname like ''p%'' '
go

EXEC xsql_GetSelect 'employee', 'emp_id, fname', ' fname like ''p%'' and job_id = 8 ', 'emp_id, fname, job_id'
go

EXEC xsql_GetSelect 'employee', 'emp_id, fname', ' fname like ''p%'' and job_id = 8 ', 'emp_id, fname, job_id', 'fname'
go

EXEC xsql_GetSelect 'employee', ' employee.fname, employee.lname, publishers.pub_name, publishers.city ', ' employee.fname like ''P%'' ', ' employee.fname, employee.lname, publishers.pub_name, publishers.city ', ' employee.fname ', ' LEFT OUTER JOIN publishers ON employee.pub_id = publishers.pub_id '
go

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

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