سلام
گاهی اوقات لازمه که در Stored Procedure ی که با یک مثلا ADODataSet فراخوانی شده، یک Return داشته باشیم مثلا
return @@Error
سوال اینجاست که این مقدار رو توی دلفی توسط چه روشی از همون ADODataSet بگیرم؟
سلام
گاهی اوقات لازمه که در Stored Procedure ی که با یک مثلا ADODataSet فراخوانی شده، یک Return داشته باشیم مثلا
return @@Error
سوال اینجاست که این مقدار رو توی دلفی توسط چه روشی از همون ADODataSet بگیرم؟
سلام.
اگه منظور شما رو درست فهمیده باشم. به طور مثال شما یک پروسیجر در sql ساختی و میخوای مقدار Return_value اون رو به برنامه نسبت بدی.
با استفاده از شی ADO storeproc و Ado Dataset استفاده کنی.
که به این صورت :
if (Sp_insert_user.Parameters.ParamByName('@return_va lue').Value=-1) then
Showmessage('متن پیغام');البته قبل آن اگر با دستورات sql آشنایی داشته باشی . باید به Return_value در sql مقدار بدی.
و چون مقدار return_value از نوع integer است باید آن را به یک متغییر از نوع اینتیجر نسبت بدید.
به این صورت:
var int1:integer;
begin
int1:= Sp_insert_user.Parameters.ParamByName('@return_val ue').Value;
end;و یا اگه اشتباه نکنم به این صورت:
var int1:integer;
begin
int1:= Sp_insert_user.Parameters.ParamByName('@return_val ue').asinteger;
end;
موفق باشید.........................
روشی که گفتید درست. اما سوال من این است که چگونه میتوان بدون تعریف متغیر اضافی، دقیقا مقدار برگشتی پروسیجر را دریافت کرد. در سوال هم مثال return @@Error را ذکر کرده بودم.
سلام.من خودم وقتی دارم select یا جمعی رو در Sp انجام میدم فقط اونو اجرا میکنم بعد با استفاده از Fieldvalues اسم ستون مورد نظر رو میدم و مقدارش رو میگیرم.متغیر اضافی هم تعریف نمی کنم.