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

كتابة اسم الجدول في جملة Sql للبجث في قاعدة بيانات Interbase

بدأه moa mohsen في 16 أغسطس 2009 · 8 رد · 1,308 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

عند كتابة جملة اس كيو ال للبحث في جدول في قاعدة بيانات انتربيز يجب وضع اسم الجدول والحقول بين علامات تنصيص مزدوجة

select * from "table1"

وهذا في انتربيز حيث لايشترط ذلك في سكيوال سيرفر مثلا والمشكلة ان اسم الجدول عندي غير ثابث فمثلا هناك عدة جداول t2006 t2007 t2008 ,وهكذا اي كل سنة لها جدول وانا اقوم بتحديد السنة في متغير عام يظهر لكل الفورمات في البداية من الفورم الرئيسي فمثلا عندما اقوم بتحديد سنة 2007 يجب ان يتم البحث في الجدول t2007 واريد ان يكون الكود كالاتي

'select * from '+quotedstr('t'+theyear)

علما بان theyear هو متغير نصي عبارة عن السنة اي 2007

ولكن هذه الطريقة لا تولد كود مقبول فما الحل

#2
moa mohsen كتب:
عند كتابة جملة اس كيو ال للبحث في جدول في قاعدة بيانات انتربيز يجب وضع اسم الجدول والحقول بين علامات تنصيص مزدوجة

select * from "table1"

وهذا في انتربيز حيث لايشترط ذلك في سكيوال سيرفر مثلا والمشكلة ان اسم الجدول عندي غير ثابث فمثلا هناك عدة جداول t2006 t2007 t2008 ,وهكذا اي كل سنة لها جدول وانا اقوم بتحديد السنة في متغير عام يظهر لكل الفورمات في البداية من الفورم الرئيسي فمثلا عندما اقوم بتحديد سنة 2007 يجب ان يتم البحث في الجدول t2007 واريد ان يكون الكود كالاتي

'select * from '+quotedstr('t'+theyear)

علما بان theyear هو متغير نصي عبارة عن السنة اي 2007

ولكن هذه الطريقة لا تولد كود مقبول فما الحل

قد تكون لديكم فكرة اخرى لحل هذه المشكلة المهم هو استعلام يكون فيه اسم الجدول متغير

#3

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

جرب اخي الكريم :

'select * from '+ '  '+ #39 +'t'+'theyear'+#39 +' ';
#4

شكرا اخي alswah على تفضلك بالرد وبسرعة ولكن الطريقة لم تنجح

#5

اورد الكود الذي تستخدمه في عملياتك حتى نستطيع التوصل لحل معا

مع تمنياتي لك بالتوفيق

#6

q هو كويري انتربيز واريد ان استخرج بيانات من احد الجداول ولتكن كل البيانات فنستعمل *

q.sql.clear;
q.sql.add('select * from "xxx" ')
q.open;

حيث xxx هو اسم الجدول المراد استخراج البيانات منه ولكن اسم اجدول ليس ثابت فمثلا عندما ادخل على الفورم الرئيسي للبرنامج واختر سنة 2008 هناك متغير نصي تراه كل الفورمات في البرنامج ياخذ القيمة 2008 واريد ان اضع اسم هذا المتغير مكان xxx فيكون هذا الكود صالحا لو اخترت سنة 2008 او اخترت سنة 2007 وهكذا علما بان استعلامات انتربيز تستلزم استخدام علامات التنصيص المزدوجة عند كتابة اسم الجدول او الحقل في الاستعلام

واكرر شكري ياخي علي اهتمامك

#7

استخدم الكود التالي :

اقتباس
'select * from '+ ' '+ #34 +'t'+theyear+#34 +' ';

وفي المرفقات مثال يوضح نجاح الطريقة :)

Arabteam2000.rar

#8
ibquery1.sql.add(q);
ibquery1.open;

الكود يعمل

بارك الله فيك اخي السواح وتعجز الكلمات عن التعبير عن الامتنان لك

#9

تمنياتي لك بالتوفيق ولا تحرمنا من تجاربك الناجحة فمنكم نستفيد

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