www2006
شنبه 07 بهمن 1385, 16:38 عصر
سلام
تو یک قسمت از یک برنامه ، میخوام نام یک کاربر را بعنوان ورودی یک SP ارسال کنم و Id او بعنوان خروجی برگردانده شود ...
من دو بار ، یک SP را به این شکل مقدار دهی و اجرا میکنم :
ADOStoredProc_User_show_ID.Parameters[2].Value := Reciever ;
ADOStoredProc_User_show_ID.ExecProc ;
RecieverNumber := ADOStoredProc_User_show_ID.Parameters[1].Value ;
ADOStoredProc_User_show_ID.Parameters[2].Value := Sender ;
ADOStoredProc_User_show_ID.ExecProc ;
SenderNumber := ADOStoredProc_User_show_ID.Parameters[1].Value ;
توضیح : Reciever و Sender هر دو String هستند و RecieverNumber و SenderNumber هم دو متغیر Integer .
مشکل :
دومین فراخوانی SP مطمئنا یک مقدار درست برمیگرداند ( براساس ورودی های برنامه اینو میگم) . . ولی اولی نه .. منظورم اینه وقتیکه اینSP مقدار ارسال شده را، در جدول پیدا نمیکند مقدار متغیر RecieverNumber دقیقا برابر SenderNumber میشود و همین مسئله مشکل ساز میشود ...
سؤال من اینه که میشه SP را طوری نوشت که اگر نتوانست رکوردی را با شرط تطبیق دهد ،Null برنگرداند و یک مقدار پیش فرض (مثلاً مقدار صفر برگرداند .. )
تو یک قسمت از یک برنامه ، میخوام نام یک کاربر را بعنوان ورودی یک SP ارسال کنم و Id او بعنوان خروجی برگردانده شود ...
من دو بار ، یک SP را به این شکل مقدار دهی و اجرا میکنم :
ADOStoredProc_User_show_ID.Parameters[2].Value := Reciever ;
ADOStoredProc_User_show_ID.ExecProc ;
RecieverNumber := ADOStoredProc_User_show_ID.Parameters[1].Value ;
ADOStoredProc_User_show_ID.Parameters[2].Value := Sender ;
ADOStoredProc_User_show_ID.ExecProc ;
SenderNumber := ADOStoredProc_User_show_ID.Parameters[1].Value ;
توضیح : Reciever و Sender هر دو String هستند و RecieverNumber و SenderNumber هم دو متغیر Integer .
مشکل :
دومین فراخوانی SP مطمئنا یک مقدار درست برمیگرداند ( براساس ورودی های برنامه اینو میگم) . . ولی اولی نه .. منظورم اینه وقتیکه اینSP مقدار ارسال شده را، در جدول پیدا نمیکند مقدار متغیر RecieverNumber دقیقا برابر SenderNumber میشود و همین مسئله مشکل ساز میشود ...
سؤال من اینه که میشه SP را طوری نوشت که اگر نتوانست رکوردی را با شرط تطبیق دهد ،Null برنگرداند و یک مقدار پیش فرض (مثلاً مقدار صفر برگرداند .. )