PDA

View Full Version : stored procedure



farhaneh
چهارشنبه 21 مرداد 1388, 16:21 عصر
سلام. من به یه مشکلیبرخوردم . ممنون میشم اگه امکان داره راهنماییم کنید.
قضیه اینه که من باید تو یه قسمتی از برنامم تو پایگاه دادم سرچ کنم.
برای این کار کاربر میتونه از فیلد هایی که برای پر کردن تو فرم در نظر
گرفته شده یکی ، دوتا و ... یا همه رو پر کنه. (بر اساس میزان اطلاعاتی که داره)
مشکل من تو نوشتن
stored procedure
هست که هم باید از
or
وقتی همه فیلد ها پر نشده و هم از
and
برای وقتی که همه فیلد ها پر شده استفاده کنم! چطوری امکانش هست که تشخیص
بدم کدوم فیلد ها پر شدن؟؟ البته خواستم برای هر حالت جداگانه بنویسم که
منطقی نیست . این رو هم بگم من این قسمت برنامه رو نوشتم ولی در صورتی
بهم جواب میده که همه فیلد ها پر شده باشن ( فعلا از
or
استفاده کردم)
و وقتی حتی یکی از اون ها رو خالی میذارم ارور میده.
نمیدونم تونستم منظورم رو برسونم یا نه؟ راستی من با زبان سی شارپ کار میکنم.

behzad_dr
پنج شنبه 22 مرداد 1388, 00:13 صبح
آره دوست عزیز . من متوجه شدم ، شما می خوای به عبارتی امکان یه جستجوی پویا واسه برنامه بگذارید .
البته حق با شماست در این وضعیت کاربر حتما باید همه فیلدها رو پر کنه در غیر اینصورت با خطا مواجه میشه .. اما این خطا فقط زمانی رخ میده که شما از = در دستورات sql استفاده کردین اگر اونها رو به like تغییر بدین مشکلتون رفع خواهد شد .

DataModule1.ADOQuery1.SQL.Add('Select Person_ID,Person_Name, from Personnel,Job,Empoly Where Sec_clue like ''%'+ComboBox1.Text+'%'' And Em_type like ''%'+ComboBox3.Text+'%''

ضمنا ، روش زیر هم یه روش خوبیه مثلا زمانی که از radio group استفاده میکنید .



if (RadioGroup1.ItemIndex=2) then
DataModule1.ADOQuery1.SQL.Add('And Act_st=0');
If trim(Edit1.Text)<>'' then
DataModule1.ADOQuery1.SQL.Add('And Em_date >='''+Edit1.Text+'''');


امیدوارم سوالتون رو درست متوجه شده باشم

farhaneh
پنج شنبه 22 مرداد 1388, 00:30 صبح
ممنون از راهنماییتون . ولی من دقیقا از like استفاده کردم نه تساوی. مگه این که کاربر فیلد هایی رو که نمیخواد پر کنه حداقل با null پر کنه که بازم منطقی نیست.
روش دیگه ای فعلا به ذهنم نمیرسه!

farhaneh
پنج شنبه 22 مرداد 1388, 16:32 عصر
کسی راه حلی نداره؟ ممنون میشم کمکم کنید.

محمد سلیم آبادی
پنج شنبه 22 مرداد 1388, 16:59 عصر
سلام.
برای بدست آوردن همچین نتایجی چندین راه حل وجود دارد.
لینک زیر می تواند چشم انداز شما را افزایش دهد.
http://www.sommarskog.se/dyn-search-2005.html#introduction

لطفا SP ای که برای این کار نوشته اید را پست کنید تا با کمک دیگران اصلاح اش کنیم و به یک نتیجه مطلوب برسانیم.