مشاهده نسخه کامل
: مقایسه روی یکی از فیلدهای بانک
به عنوان مثال تو یکی از جداول بانکم یه فیلد به نام Takhfif دارم. میخوام اول در یک دستور select اون سطر مورد نظرم رو پیدا کنم و بعد بگم اگه مقدار فیلد takhfif در این سطر 10 هست فلان دستور رو اجرا کن.
میشه برام یه قطعه کد بنویسید؟
یه سوال دیگه هم دارم. اونم اینه که در دستور delete با این خطا مواجه میشم:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
کدهامم به این شکله:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
bad_boy_2007
26-01-2010, 00:55
سلام دوست من ، شما که اینقدر قشنگ با پارامتر ها کار میکنید چرا کدهایتان را StoredProcedure نمیکنید ؟ هم سریع تر است و هم تمیز تر ، بگذریم
SQL Query :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
در ضمن یک توصیه ، تمام توابع کار با داده ها را در کلاسهای موبط قرار بده (مثلا کلاس مشتری ، فروش ، خرید و ...) و بهیچ عنوان در این توابع سوالاتی نظیر "مایل به حذف مشتری .... هستید" ، "مشتری اضافه شد" و... را قرار ندهید ، این کد ها را در فرم برنامه تان قرار دهید
سلام دوست من ، شما که اینقدر قشنگ با پارامتر ها کار میکنید چرا کدهایتان را StoredProcedure نمیکنید ؟ هم سریع تر است و هم تمیز تر ، بگذریم
SQL Query :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
در ضمن یک توصیه ، تمام توابع کار با داده ها را در کلاسهای موبط قرار بده (مثلا کلاس مشتری ، فروش ، خرید و ...) و بهیچ عنوان در این توابع سوالاتی نظیر "مایل به حذف مشتری .... هستید" ، "مشتری اضافه شد" و... را قرار ندهید ، این کد ها را در فرم برنامه تان قرار دهید
مشخصه که شما برنامه نویس حاذقی هستید که اینطور ساختیافته می نویسید. ولی متاسفانه من هنوز تازه کارم و همین کدهایی که به عنوان راهنمایی برام نوشتید رو نفهمیدم!! این یعنی چی؟ Declare @Discount decimal
bad_boy_2007
29-01-2010, 23:50
توصه میکنم یک کتاب آموزش SQL گیر بیاورید و 2 فصل آن را بخوانید :
1- Stored Procedure ها
2- بخشی که در رابطه با متغییر ها و شیوه کار کردن با آن توضیح داده
بصورت خلاصه :
برای تعریف متغییر در SQL از دستور Declare استفاده میشود این متغییر (که به آن متغییر محلی نیز گفته میشود) الزاما باید با @ شروع شود .
دستور زیر متغییری از نوع Decimal تعریف میکند :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
برای مقدار دهی متغییر ها از دستور Set یا Select استفاده میشود ، به عنوان مثال هر دو دستور زیر مقدار 2 را در متغییر @A میریزند :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
دستورات شرطی در SQL مشابه با VB و Delphi هست مثلا اگر بخوایم مقدار @A را بررسی کنیم و با توجه با مقادی متفاوت آن عکس العمل های متفاوتی از خود نشان دهیم :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
[دستور Print برای چاپ یک مقدار در خروجی استفاده میشود]
و اما یک نمونه کامل برای کار با متغییر ها و بررسی شرطها که در SQL قابل اجراست :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
اگر در اجرای کد های فوق در SQL Server Managment Studio مشکلی نداشتید بکویید تا طریقه تبدیل این کدها به Stored Procedure و استفاده از آن در برنامه را بگویم .
خیلی خیلی خیلی ممنون. آره این کدها رو در یکی کوئری اجرا کردم. بقیه اشو بگید آقا معلم.
bad_boy_2007
31-01-2010, 19:14
پروسیجر های ذخیره شده (Stored Procedure) قطعه کدهایی هستند که عموما به دو دلیل استفاده میشوند :
جهت افزایش سرعت اجرا
جهت کاهش ترافیک شبکه و افزایش خوانایی
جهت ایجاد یک پروسیجر ذخیره شده ، در بخش Program Ability (دو - سه تا گزینه زیر گره Table در ManagmentStudio) بر روی گره StoredProcedure راست کلیک کنید و کزینه New Stored Procedure ... را انتخاب نمایید ، کدی مشابه ذیل دیده میشود :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
همانگونه که در متن کد دیده میشود با فشردن کلیدهای CTR + Shift +M میتوان پارامترهای پیش فرض را برای ایجاد آن مقدار دهی کرد .
هر پروسیجر ذخیره شده میتواند تعدادی پارامتر (0 یا بیشتر) داشته باشد که این پارامتر ها دقیقا در خط بعد از
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
و پیش از AS قرار میگیرند .
نمونا ای از یک پروسیجر ذخیره شده بدون پارامتر که فقط عبارتی را در صفحه چاپ میکند :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
جهت اجرای این پروسیجر میتوان از دستور ذیل استفاده کرد :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
و اما اگر بخواهید پارامتر به استورد پروسیجر پاس دهید مشابه ذیل :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
و اما برای اجرا :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
...
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.