PDA

View Full Version : گرفتن مقدار return از SQL در Delphi با ADO



A.Nemati
شنبه 24 فروردین 1387, 18:45 عصر
سلام
گاهی اوقات لازمه که در Stored Procedure ی که با یک مثلا ADODataSet فراخوانی شده، یک Return داشته باشیم مثلا
return @@Error
سوال اینجاست که این مقدار رو توی دلفی توسط چه روشی از همون ADODataSet بگیرم؟

delphiprog3000
یک شنبه 25 فروردین 1387, 09:47 صبح
سلام.

اگه منظور شما رو درست فهمیده باشم. به طور مثال شما یک پروسیجر در 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;

موفق باشید.........................

A.Nemati
شنبه 31 فروردین 1387, 14:43 عصر
روشی که گفتید درست. اما سوال من این است که چگونه می‌توان بدون تعریف متغیر اضافی، دقیقا مقدار برگشتی پروسیجر را دریافت کرد. در سوال هم مثال return @@Error را ذکر کرده بودم.

حمیدرضاصادقیان
شنبه 31 فروردین 1387, 15:33 عصر
سلام.من خودم وقتی دارم select یا جمعی رو در Sp انجام میدم فقط اونو اجرا میکنم بعد با استفاده از Fieldvalues اسم ستون مورد نظر رو میدم و مقدارش رو میگیرم.متغیر اضافی هم تعریف نمی کنم.

A.Nemati
یک شنبه 01 اردیبهشت 1387, 08:59 صبح
سلام.من خودم وقتی دارم select یا جمعی رو در Sp انجام میدم فقط اونو اجرا میکنم بعد با استفاده از Fieldvalues اسم ستون مورد نظر رو میدم و مقدارش رو میگیرم.متغیر اضافی هم تعریف نمی کنم.
اولا که Error@@ فیلدی نیست که شما بتونید اونو از Fieldvalues بگیرید. دوما در Insert, Update, Delete چه می‌کنید؟