View Full Version : طرز استفاده از Store Procedure
famarini
سه شنبه 10 آذر 1388, 15:49 عصر
با سلام به همه دوستان
من خيلي دنبال اين مطلب گشتم اما مثل اينكه براي كسي مهم نيست كه كوئريها رو ديتابيس پردازش كنه لطفا دوستاني كه در اين زمينه كار كرند طرز نوشتن دستورات و همچنين اين نوشتها كجا ذخيره مي شن رو توضيح بدن بازم همه ممنون مي شم تا اونجايي كه مي شه كامل توضيح بدين.
موفق و پيروز باشيد
famarini
پنج شنبه 19 آذر 1388, 12:10 عصر
با تشكر از تمامي دوستاني كه اومدن اين تاپيك و ديدن و هيچ تلاشي جهت حل اين قصه نكردند دوستاني كه بعدا ميان و اين تاپيك مي بينن برن به آدرس زير جواب و مي تونن بخونن :
http://www.macronimous.com/resources/using_stored_procedure_with_mySQL_and_PHP.asp
esz_sa
شنبه 12 دی 1388, 20:52 عصر
salam bar hameh
mahyar13652000
یک شنبه 18 بهمن 1388, 09:00 صبح
سلام من هم خیلی دنبال این مطلب می گردم اما متاسفانه کسی چیزی نمی نویسه
contestant
پنج شنبه 13 اسفند 1388, 11:51 صبح
سلام
من امروز این تاپیک رو دیدم، هرچند که زمان زیادی از افتتاح اون گذشته، ولی لاذم میدونم یه نمونه کد و توضیح مختصری در باره Stored Procedures بدم.
به نمونه کد زیر توجه نمایید:
کد زیر با این فرض نوشته شده است که یک جدول با نام Order داریم که میخواهیم order_id کسی که بیشترین سفارش را داده است را نمایش دهیم. کد آن از قرار زیر است:
delimiter //
CREATE PROCEDURE largest_order(out largest_id int)
BEGIN
declare this_id int;
declare this_amount float;
declare l_id int;
declare l_amount float default 0.0;
declare done int default 0;
declare continue handler FOR NOT FOUND set done = 1;
declare cursor_name1 cursor for select order_id, amount from orders;
open cursor_name1;
REPEAT
fetch cursor_name1 into this_id , this_amount;
IF NOT done THEN
IF this_amount > l_amount THEN
set l_amount = this_amount;
set l_id = this_id;
END IF;
END IF;
until done END REPEAT;
close cursor_name1;
set largest_id = l_id;
END;
//
delimiter ;
برای فراخوانی و استفاده از این "روال ذخیره شده" یا Stored Procedure از کد زیر استفاده میکنیم:
CALL largest_order(@largestid);
select @largestid;
کدها رو فعلا توضیح نمیدم تا اگر از این مطلب بازدید شد و به به ادامه علاقه نشون داده شد، این کدها رو خط به خط توضیح میدم.
اگر مطلب براتون مفید بوده، لطفا تشکر فراموش نشه :قلب::بوس:
DataMaster
جمعه 14 اسفند 1388, 10:54 صبح
با سلام به همه دوستان
من خيلي دنبال اين مطلب گشتم اما مثل اينكه براي كسي مهم نيست كه كوئريها رو ديتابيس پردازش كنه لطفا دوستاني كه در اين زمينه كار كرند طرز نوشتن دستورات و همچنين اين نوشتها كجا ذخيره مي شن رو توضيح بدن بازم همه ممنون مي شم تا اونجايي كه مي شه كامل توضيح بدين.
موفق و پيروز باشيد
عزیز من شما کاملا توی تالار PHP باید این سوال رو مطرح میکردید
اگر در مورد نحوه نوشتن پروسیجرها در Mysql مشکل دارید بخش Mysql مناسب است
try_3tishk
چهارشنبه 19 اسفند 1388, 09:38 صبح
سلام من با store procedure پروژه نوشتم.
چند نمونه کد واست می ذارم.
تو این کد طلاعاتی را وارد جدول کرده ایم.اول جداولتو ایجاد کن بعد دست به کار شو
CREATE PROCEDURE insabspresent
@absid int,
@absname nvarchar(30),
@absshift nvarchar (20),
@absdate nvarchar (12),
@absstatuse nvarchar(15),
@abstime nvarchar(20)
AS
insert into table(absid,absname,absshift,absdate,absstatuse,ab stime)
values(@absid,@absname,@absshift,@absdate,@absstat use,@abstime)
GO
کد بعدی دارم select میکنم.
CREATE PROCEDURE selectderivers
@drivid int,
@drivname nvarchar (30)
AS
select * from drivers where drivid=@drivid and drivname=@drivname
GO
کد بعدی update میکنم
CREATE PROCEDURE upath
@pathid int,
@pathname nvarchar (50),
@pathcost nvarchar (15),
@pathroof nvarchar (20),
@pathtime nvarchar (10)
AS
update paths set pathname=@pathname,pathcost=@pathcost,pathroof=@pa throof,pathtime=@pathtime
where pathid=@pathid
GO
اینم ای میلمه اگه مشکلی داشتیید ای میل بزنید.
mehran20te20@gmail.com خانم عباس پور
mshakeri
چهارشنبه 19 اسفند 1388, 09:47 صبح
این فایل آموزش MySQL stored procedure که انگلیسی ولی خیلی ساده گفنه شده.
45384
contestant
چهارشنبه 26 اسفند 1388, 19:17 عصر
اگر چه استفاده از Stored Procedure ها یا همان روال ها و روش های ذخیره شده در پایگاه داده، در انجام کار، سهولت بسیار زیادی ایجاد میکنه و میشه بسیار بهتر و پیشرفته تر به مدیریت پایگاه داده از داخل خودش پرداخت، ولی استفاده از این روش در پایگاه داده MySQL پیشنهاد نمیشود.
این امر دلایلی داره از قبیل:
- قدرت کم مای اسکیوال در پردازش های زیاد در آن واحد.
- تعاملی بودن اطلاعات در وب که با توجه به مورد فوق باعث کش کردن پایگاه داده و عدم سرویس دهی آن میشود.
اما پایگاه های داده ای نظیر SQL Server که از قدرت بیشتری برخوردار هستند و ترجیحا برای نرم افزارهای Desktop بسیار مفید بوده و علاوه بر موارد ذکر شده، امنیت نرم افزار را نیز بالا میبرد، چون اطلاعات ذخیره شده در این پایگاه داده، قابل بازیابی نیستند.
موفق باشید
I,Nobody
چهارشنبه 05 خرداد 1389, 09:09 صبح
اما پایگاه های داده ای نظیر SQL Server که از قدرت بیشتری برخوردار هستند و ترجیحا برای نرم افزارهای Desktop بسیار مفید بوده و علاوه بر موارد ذکر شده، امنیت نرم افزار را نیز بالا میبرد، چون اطلاعات ذخیره شده در این پایگاه داده، قابل بازیابی نیستند
دوست عزيز، اين مطالب رو رو چه حساب گفتيد؟ فاكتور قدرت و امنيت از نظر شما چيست؟
چطور به راحتي ميتونيد در مورد قدرت بيشتر يك ديتابيس صحبت كنيد در حالي كه هر كدام از اين دو ديتابيس، برتري هايي نسبت به همديگر دارند.
خواهشاً از كلي گويي و بيان نظرات بي بنيان جلوگيري كنيد. چون ممكنه به كلي مسير كار يك تازه كار رو تغيير بده.
contestant
سه شنبه 25 خرداد 1389, 18:08 عصر
دوست عزيز، اين مطالب رو رو چه حساب گفتيد؟ فاكتور قدرت و امنيت از نظر شما چيست؟
چطور به راحتي ميتونيد در مورد قدرت بيشتر يك ديتابيس صحبت كنيد در حالي كه هر كدام از اين دو ديتابيس، برتري هايي نسبت به همديگر دارند.
خواهشاً از كلي گويي و بيان نظرات بي بنيان جلوگيري كنيد. چون ممكنه به كلي مسير كار يك تازه كار رو تغيير بده.
دوست عزیز شما درست میفرمایید
مای اسکیوال هم محاسنی نسبت به اسکیوال سرور داره، به طور مثال ارزانتر و قابل دسترس تر بودن آن در اکثر هاستها و ... .
اما منظور من از قدرت بیشتر اسکیوال سرور میشه به تعداد محاسباتی که میتونه در واحد زمان انجام بده اشاره کرد، شما این مطلب رو زمانی لمس میکنید که به طور مثال 1 میلیون رکورد رو همزمان فرا بخونید و اینزرت کنید و یا تعدادی تیبل رو با تعداده قابل ملاحظه ای رکورد اینیر جوین کنید.
همچنین استفاده از استورد پروسیجرها از جمله مشکلاتی که در مای اسکیوال ایجاد میکنند، بالا بردن حجم اطلاعاتی و در نتیجه پایین اومدن سرعت عملکرد اشاره کرد و همچنین کش کردن اطلاعات به این ترتیب که مثلا یه متغیر ممکنه هنوز مقدار قبلی رو ذخیره داشته باشه و در محاصبات جدید اخلال ایجاد کنه.
و یه مطلبه دیگه که لازم به ذکره، پایگاه داده ایجاد شده در مای اسکیوال در قالب یک text هست در حالی که اسکیوال سرور فایل dll.
به هر حال من چیزایی رو گفتم که یا تجربه خودم بوده و یا تجربه پیشکسوتان، اگر گستاخی کردم عذر میخوام :چشمک:
موفق باشید
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.