زمان کنونی: 1395-11-05, 09:36 ق.ظ
خوش آمدید، مهمان! (ورودثبت نام)

ارسال پاسخ 
 
امتیاز موضوع:
  • 1 رأی - میانگین امتیازات: 5
  • 1
  • 2
  • 3
  • 4
  • 5
اشتراک موضوع در Digg delsios Reddit Facebook Twitter StumbleUpon
ایجاد پروسیجر (Stored Procedure) در دیتابیس SQL
نویسنده پیام
********
مدیر ارشد
مدیر ارشد سایت
وضعيت : آفلاین
ارسال ها:305
تاریخ ثبت نام:خرداد 1392
اعتبار: 10
سن: 25
ساکن: بوشهر
حالت من: شاد
سپاس ها: 1000
سپاس شده 1346 بار در 314 ارسال

ارسال: #1
ایجاد پروسیجر (Stored Procedure) در دیتابیس SQL
ایجاد و ذخیره پروسیجر (Stored Procedure) در دیتابیس SQL
ایجاد و استفاده از پروسیجر امنیت ، سهولت ، بهینه سازی کد، برنامه نویسی 3 لایه و .... را در اختیار شما قرار می دهد، از اینرو استفاده از پروسیجر به جای کد نویسی مستقیم در زبان برنامه نویسی در پروژه های متوسط و بزرگ بسیار توصیه می شود.
تحقیق در مورد مزایای استفاده از پروسیجر ذخیره شده به عهده خودتون میزارم ، تو این پست نحوه ایجاد و استفاده از اون رو شروع می کنیم.
نرم افزار SQL SERVER Managment Studio رو باز کنید و مسیری که در تصویر زیر مشخص شده رو دنبال کنید و گزینه مشخص شده رو کلیک کنید تا پنجره ایجاد پروسیجر براتون باز بشه.

[تصویر: do.php?imgf=137240893498961.jpg]

تمام کدهایی که در پنجره باز شده میبینید، پاک کنید و کدهای زیر رو جایگزین کنید:
کد:

کد:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

Create PROCEDURE [dbo].[select_tb1](@param1 int)
AS
declare @myid int  

BEGIN
select * from tb1
END
1
2
3
4
5
6
7
8
9
10
11
12

به جای select_tb1 نام پروسیجرتون رو بنویسید (نام دلخواه).
param1 : نام دلخواه پارامتر ورودی پروسیجر
نکته1: در صورتی که پروسیجرتان پارامتری ندارد ، قسمت "(@param1 int)" (همرا با پرانتز) رو پاک کنید.
نکته2: قرار دادن کارکتر @ در کنار نام پارامتر ضروری هست ، همچنین بعد از نام پارامتر باید نوع داده ورودی هم مشخص شه که در اینجا از نوع INT هست.
دستور declare @myid int : با این دستور یک متغیر با نام myid از نوع Int در پروسیجر تعریف میشه . ( به محل تعریف متغیرها دقت کنید ، بین As و BEGIN )
و در آخر دستورات پروسیجرتون رو باید بین دو خط BEGIN و END بنویسید . که در اینجا دستور ما select * from tb1 هست که تمام رکوردهای تیبل tb1 را به خروجی میده.

بعد از اینکه کد نویسیتون تموم شد ، باید پروسیجر رو با دکمه Execute که در تصویر زیر مشخص شده ، ایجاد و ذخیره کنید.

[تصویر: do.php?imgf=137240893517872.jpg]

اگر کد پروسیجرتون مشکلی نداشته باشه باید در قسمت پایین برنامه SQL manager پیغام زیر براتون نمایش داده شه.

[تصویر: do.php?imgf=137240893523423.jpg]

و همینطور پروسیجری که ساختید در دیتابیستون با همون اسمی که در کد مشخص کردید ذخیره شه. ( مثل تصویر زیر که محل قرار گیری پروسجرهای دیتابیس را نمایش میده):

[تصویر: do.php?imgf=137240929130711.jpg]

اگر هم اون پیغام داده شد ، اما پروسیجرتان در دیتابیستون ذخیره نشده و نمی تونید پیداش کنید ، نگران نباشید ، کافیه یک بار برنامه SQL Server رو باز و بسته کنید ، بعد می تونید ببینید که مثل تصویر بالا ذخیره شده.

اما اگر بعد از فشردن دکمه Execute با خطا ( که متن خطا با رنگ قرمز در همان قسمت پایین نوشته می شود) مواجه شدید ، به احتمال زیاد کد پروسیجرتون یک جایش مشکل داره و یا ممکنه اشتباه تایپی داشته باشید .در این موقع پروسیجر ایجاد نمیشه ، تا زمانی که خطا رو برطرف کنید و دوباره دکمه Execute رو بزنید.

------------------------------
سئوالی بود ، در همین تاپیک بپرسید
کپی برداری فقط با ذکر منبع بوشهرتیم و لینک سایت مجاز هست.
موفق باشید.















پیروزی آن نیست که هرگز زمین نخوری، آنست که بعد از هر زمین خوردنی برخیزی.(مهاتما گاندی)
انجمن تخصصی برنامه نویسی و نرم افزار بوشهرتــیــــــــم
1392-04-07 01:20 ب.ظ
مشاهده سایت این کاربر یافتن همه ی ارسالهای این کاربر نقل قول این ارسال در یک پاسخ
 سپاس شده توسط omrani.meysam63 ، sajednet ، bita6642 ، nahid ، arsha.safaie ، ETSCOM.blogfa.com
**
کاربر سایت


کاربر سایت
وضعيت : آفلاین
ارسال ها:1
تاریخ ثبت نام:خرداد 1393
اعتبار: 0
سن:
ساکن:
حالت من:
سپاس ها: 2
سپاس شده 4 بار در 1 ارسال

ارسال: #2
RE: ایجاد پروسیجر (Stored Procedure) در دیتابیس SQL
سلام
یه سوال
اصلا پروسیجر بدرد چه کاری میخوره موارد استفاده ش چیه
1393-05-12 03:29 ب.ظ
یافتن همه ی ارسالهای این کاربر نقل قول این ارسال در یک پاسخ
 سپاس شده توسط nahid ، arsha.safaie ، omrani.meysam63 ، ETSCOM.blogfa.com
********
مدیر ارشد
مدیر ارشد سایت
وضعيت : آفلاین
ارسال ها:305
تاریخ ثبت نام:خرداد 1392
اعتبار: 10
سن: 25
ساکن: بوشهر
حالت من: شاد
سپاس ها: 1000
سپاس شده 1346 بار در 314 ارسال

ارسال: #3
RE: ایجاد پروسیجر (Stored Procedure) در دیتابیس SQL
(1393-05-12 03:29 ب.ظ)sani0111 نوشته شده توسط:  سلام
یه سوال
اصلا پروسیجر بدرد چه کاری میخوره موارد استفاده ش چیه
سلام
خیلی کوتاه و خلاص: امنیت در اطلاعات ، بهینه شدن حجم کدها ، سرعت در انتقال داده ها ، متمرکز شدن عملیات پایگاه داده ، حرفه ای بودن وکمک به چند لایه شدن برنامه و در اختیار داشتن امکاناتی دیگه ..















پیروزی آن نیست که هرگز زمین نخوری، آنست که بعد از هر زمین خوردنی برخیزی.(مهاتما گاندی)
انجمن تخصصی برنامه نویسی و نرم افزار بوشهرتــیــــــــم
(آخرین ویرایش در 1393-05-14 07:31 ب.ظ توسط: Reza.Heydari. دلیل ویرایش : )
1393-05-13 09:13 ب.ظ
مشاهده سایت این کاربر یافتن همه ی ارسالهای این کاربر نقل قول این ارسال در یک پاسخ
 سپاس شده توسط nahid ، omrani.meysam63 ، arsha.safaie ، ETSCOM.blogfa.com
**
کاربر سایت


کاربر سایت
وضعيت : آفلاین
ارسال ها:2
تاریخ ثبت نام:دى 1393
اعتبار: 0
سن:
ساکن:
حالت من:
سپاس ها: 1
سپاس شده 2 بار در 2 ارسال

ارسال: #4
RE: ایجاد پروسیجر (Stored Procedure) در دیتابیس SQL
باسلام. لطفا جواب سوال من را هم بدهید. برای پروژه ام هست و عجله دارم. متشکرم.سوال اول: چه طور میتونم یه استور پروسجر برای جدول فروشم بنویسم که قیمت را ضربدر تعداد غذا بکند و خروجی اش را تو دیتا گرید ویو تو ستون قیمت کل نمایش بده. ( در ضمن تو جدول فروشم ستون قیمت کل نیست). میخوام تو گرید فقط این ستون را داشته باشم. که وقتی تو سی شارپ کد این مشتری را سرچ کردم لیست غذاهای سفارشی اش با قیمت کل بیاد. (( تو پروژه من به روش لینکیو رفتم لطفا شما روش استور پروسجری اش را بگید)). ممنون.
جدول فروش ام شامل: کد فاکتور / کد مشتری / کد غذا/ تعداد غذا هست.
که کد مشتری و کد غذا کلید خارجی هستند و کد فاکتور هم کلید اصلی هست.


 

 

 
1394-05-19 12:48 ق.ظ
یافتن همه ی ارسالهای این کاربر نقل قول این ارسال در یک پاسخ
 سپاس شده توسط omrani.meysam63
**
کاربر سایت


کاربر سایت
وضعيت : آفلاین
ارسال ها:2
تاریخ ثبت نام:شهریور 1394
اعتبار: 0
سن:
ساکن:
حالت من:
سپاس ها: 0
سپاس شده 2 بار در 2 ارسال

ارسال: #5
RE: ایجاد پروسیجر (Stored Procedure) در دیتابیس SQL
سلام دوست عزیز. من ی مشکل عجیب دارم!!!
یه استور پراک تو SQL ایجاد کردم که یه استرینگ رو از ی برنامه  c# دریافت کرده و استورپراک اجرا شده و نتایج رو در یه تکست باکس نمایش میده. کار استور پراک هم اینه که همون استرینگ رو تو پایگاه داده جستجو کنه و سطر مورد نظر رو به C# برگردونه.
و اما مشکل: در مورد برخی مقادیر وقتی من مقدار رو در تکست باکس تایپ میکنم تا از C# به SQL فرستاده بشه بعد از اجرای استور پراک هیچ مقداری پیدا نمیشه ولی اگر همون مقدار رو از درون SQL کپی کنم به داخل تکست باکس درون C#، سطر مورد نظر به درستی پیدا میشه!!!
مثلا وقتی کلمه ایران داروک رو از SQL کپی میکنم داخل تکست باکس و جستجو رو میزنم به درستی همه چی اجرا میشه ولی اگر همین عبارت رو تایپ کنم سطر مورد نظر پیدا نمیشه!!!
شما میدونید مشکل کجاست؟
باتشکر
1394-06-24 11:16 ق.ظ
یافتن همه ی ارسالهای این کاربر نقل قول این ارسال در یک پاسخ
 سپاس شده توسط omrani.meysam63
**
کاربر سایت


کاربر سایت
وضعيت : آفلاین
ارسال ها:2
تاریخ ثبت نام:شهریور 1394
اعتبار: 0
سن:
ساکن:
حالت من:
سپاس ها: 0
سپاس شده 2 بار در 2 ارسال

ارسال: #6
RE: ایجاد پروسیجر (Stored Procedure) در دیتابیس SQL
(1394-06-24 11:16 ق.ظ)'mahdix67' نوشته شده توسط:  سلام دوست عزیز. من ی مشکل عجیب دارم!!!
یه استور پراک تو SQL ایجاد کردم که یه استرینگ رو از ی برنامه  c# دریافت کرده و استورپراک اجرا شده و نتایج رو در یه تکست باکس نمایش میده. کار استور پراک هم اینه که همون استرینگ رو تو پایگاه داده جستجو کنه و سطر مورد نظر رو به C# برگردونه.
و اما مشکل: در مورد برخی مقادیر وقتی من مقدار رو در تکست باکس تایپ میکنم تا از C# به SQL فرستاده بشه بعد از اجرای استور پراک هیچ مقداری پیدا نمیشه ولی اگر همون مقدار رو از درون SQL کپی کنم به داخل تکست باکس درون C#، سطر مورد نظر به درستی پیدا میشه!!!
مثلا وقتی کلمه ایران داروک رو از SQL کپی میکنم داخل تکست باکس و جستجو رو میزنم به درستی همه چی اجرا میشه ولی اگر همین عبارت رو تایپ کنم سطر مورد نظر پیدا نمیشه!!!
شما میدونید مشکل کجاست؟
باتشکر


 
آها خودم مشکل رو پیدا کردم. برای دوستان میگم تا کسی به این مشکل برنخوره.باید در همه جداول SQL مقادیر استرینگ های فارسی از نوع NVarChar تعریف بشن. اگر نوع داده ای متفاوت باشن ممکنه در جستجو به مشکل بخورید. مثلا سیستم کلمه ایران با نوع NChar رو با کلمه ایران با نوع NVarChar متفاوت میدونه


 
1394-06-24 05:19 ب.ظ
یافتن همه ی ارسالهای این کاربر نقل قول این ارسال در یک پاسخ
 سپاس شده توسط omrani.meysam63
ارسال پاسخ 


موضوع‌های مرتبط با این موضوع...
موضوع: نویسنده پاسخ: بازدید: آخرین ارسال
  حذف /اضافه/انتخاب و ویرایش فیلدهای دیتابیس SQL Reza.Heydari 2 4,709 1393-06-14 11:24 ب.ظ
آخرین ارسال: Reza.Heydari
  ایجاد یک دیتابیس ساده SQL Reza.Heydari 0 1,797 1392-04-05 11:26 ب.ظ
آخرین ارسال: Reza.Heydari

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

دوستان ما