تالار گفتمان nCIS.ir

نسخه‌ی کامل: استفاده از stored procedure
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام دوستان عزیزم خسته نباشید
من میخوام که توی codeigniter از Stored Procedure استفاده کنم، راستش خیلی جستجو کردم اما مشکلم حل نشد
در ضمن من از Codeigniter 3.1 استفاده می کنم و از Microsoft SQL Server 2012 و از درایور sqlsrv

کد:
alter PROCEDURE [dbo].[count_message]
        @username smallint
 
    
AS    SET NOCOUNT ON;

return isnull((select count(*) from dbo.sd_message where ms_user=1 or ms_user=@username),0)
ببینید اصولا اجرای یک دستور sql حالا DBMS آن میخواهد mysql باشد و یا ms sql فرقی نمی کند و شما باید به دنبال این باشید که درواقع چگونه من یک دستور sql را اجرا کنم؟
حال با رسیدن به این سوال راحت میتوان به جواب زیر دست یافت.


$this->db->call_function('test_proc');
یا
$this->db->query("call test_proc()");



http://stackoverflow.com/a/18741337/5220303
https://codeigniter.com/user_guide/datab...eries.html
سلام 
ممنونم اما این کار نمیکنه اینارو خودم قبلا تست کرده بودم

من میخوام که مقدار برگردونه
کد زیر را هم بررسی کنید. اگر خطا داد اینجا قرار دهید.
$result = $this->db->query("PROCEDURE_NAME {$param_1}, {$param_2}")->result_array();
http://stackoverflow.com/questions/29450...sql-server
(17-12-1395، 11:46 ق.ظ)ابوالفضل زیارت بان نوشته: [ -> ]کد زیر را هم بررسی کنید. اگر خطا داد اینجا قرار دهید.
$result = $this->db->query("PROCEDURE_NAME {$param_1}, {$param_2}")->result_array();
http://stackoverflow.com/questions/29450...sql-server

هیچ مقداری بر نمیگردونه
خوب طبیعتا چیزی بر نمیگرداند.
من تا جایی که یادمه کلمه کلیدی Retrun در Store Procedure معنا ندارد از اینرو برای خروجی گرفتن یا شما باید از دستور select استفاده کنید و یا باید یک نوع پارامتر از نوع خروجی تعریف کنید که این نوع پارامتر خروجی صرفا برای استفاده بعد از فراخوانی SP است و در هر صورت شما باید با دستور select خروجی داشته باشید.

کد:
alter PROCEDURE [dbo].[count_message]
@username smallint
as
Begin
SET NOCOUNT ON
select isnull((select count(*) from dbo.sd_message where ms_user=1 or ms_user=@username),0)
end

https://msdn.microsoft.com/en-us/library/ms187926.aspx
https://msdn.microsoft.com/en-us/library/ms189762.aspx