PDA

View Full Version : سوال: تولید کد select در بانک sql به صورت پویا



download69
چهارشنبه 30 اسفند 1391, 00:11 صبح
سلام دوستان

من دارم روی یک موتور جستجو کار می کنم (تازه شروع کردم).
توی صفحه اول من یک تکس باکس و یک باتن دارم که برای سرچ سریع و آسان است و یک بخش دیگه برای محدود سازی سرچ .. مثلا فقط رکرود هایی که فیلد شهر اونا تهران باشه

برای اینکار من به مشکل برخوردم ...!!!
چون برای سرچ آسان یک سرسی کد و برای پیشرفته هم به یک سری کد دیگه نیاز داریم که باید خودمون تولید کنیم ...

باید چیکار کرد ؟؟؟

++

fakhravari
چهارشنبه 30 اسفند 1391, 01:21 صبح
سوال ساده است که.
با توجه به متن وارد شده جستجو کن.
میتونی 2 جستجو union کنید

alaveh
چهارشنبه 30 اسفند 1391, 02:04 صبح
کویری رو تو برنامه تولید کن .

با برنامه چک کن : اگر شهر وارد شده اون وقت کد SQL رو به علاوه Where city=xxx کنه اگرم نه که اصلا Where نوشته نمیشه .

اگر چند شرط داری میتونی از یک فیلد بولین ( یا یک اینتجر ) استفاده کنی و اگر یک بار Where رو نوشتی برای بار دوم دیگه Where نوشته نشه و به جاش بنویسه مثلا AND Color='Red' که اینم یک IF میخواد فقط .

download69
چهارشنبه 30 اسفند 1391, 19:58 عصر
خودمم از همین روش استفاده میکنم گفتم شاید روش درستی نباشه :لبخند:

من این کوئری تولید شده رو توی یک صفحه دیگه استفاده میکنم و برای انتقال از session استفاده میکنم
به نظر شما session خوبه یا نه ؟؟

alaveh
چهارشنبه 30 اسفند 1391, 22:02 عصر
خودمم از همین روش استفاده میکنم گفتم شاید روش درستی نباشه :لبخند:

نه دوست گلم خیلی هم درسته . من کویریهای خیلی سنگین رو هم با همین روش تولید میکنم . اما فکر نمیکنم اصلا راهی هم جز این داشته باشه .



من این کوئری تولید شده رو توی یک صفحه دیگه استفاده میکنم و برای انتقال از session استفاده میکنم
به نظر شما session خوبه یا نه ؟؟

من با این مفهوم آشنایی ندارم عزیزم . اگر متعلق به ASP هست باید بگم من برنامه نویس دلفی هستم .

saeed31641
پنج شنبه 01 فروردین 1392, 09:42 صبح
شما باید فیلدهای جستجو رو and کنی جستجو اسان و پیشرفته باید فرقش این باشه که جستجوی پیشرفته فیلترش بیشتر یعنی جستجوش باید دقیق تر باشه که راحت شما همه رو And کنید


//جستجو
string str = "select * from VDB_TOrgChart where 1=1";

if (TPostName.Text != "")
str = str + " and FOrgChartName like N'%" +ConstList.ChexhXss(TPostName.Text) + "%' ";

alaveh
پنج شنبه 01 فروردین 1392, 10:44 صبح
شما باید فیلدهای جستجو رو and کنی جستجو اسان و پیشرفته باید فرقش این باشه که جستجوی پیشرفته فیلترش بیشتر یعنی جستجوش باید دقیق تر باشه که راحت شما همه رو And کنید


//جستجو
string str = "select * from VDB_TOrgChart where 1=1";

if (TPostName.Text != "")
str = str + " and FOrgChartName like N'%" +ConstList.ChexhXss(TPostName.Text) + "%' ";


کلک جالبیه . دیگه IF نیاز نداره .