Parsi Coders
گرفتن خروجی از استورپروسیجر - نسخه قابل چاپ

+- Parsi Coders (http://parsicoders.com)
+-- انجمن: Software Development Programming (http://parsicoders.com/forumdisplay.php?fid=37)
+--- انجمن: Pascal/Delphi (http://parsicoders.com/forumdisplay.php?fid=45)
+--- موضوع: گرفتن خروجی از استورپروسیجر (/showthread.php?tid=3221)



گرفتن خروجی از استورپروسیجر - nasrinPoornejaty - 06-15-2013

سلام ببخشید من اینقدر سوال می پرسم
من یک پروسیجر دارم با 4 تا ورودی و یک خروجی که کد خطا را بر می گرداند .
sql:='SET @errorcode=0;';
       ADOSmamSender.Execute(Sql);
       sql:='CALL EBIMSMS1('''+Tel_No_old+''','''+Message_Send+''',15,@errorcode);';
       ADOSmamSender.Execute(Sql);
       sql:='select @errorcode;';
       ADOSmamSender.Execute(Sql);
تا اینجا کدم درست کال می شه ، حالا می خوام خروجی یعنی همان کد خطا را که خروجی پروسیجر هست را ازش بخونم اما نمی دوونم چطور میشه
'select @errorcode'
جواب کارم رو نمی ده میشه خروجی را بریزم تو یک  متغیر ؟؟؟؟ شما می تونید کمک کنید


RE: گرفتن خروجی از استورپروسیجر - Amin_Mansouri - 06-15-2013

درود
خوبی ؟
اینجا سوال زیاد پرسیده میشه و جای سوال هم هست.
از ADOQuery استفاده کن اینجوری میشه

ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('insert into Table1');
ADOQuery1.SQL.Add('select Field1 ,Field2 from Table2');
ADOQuery1.SQL.Add('where ArtNo= 1');
NumRows := ADOQuery1.ExecSQL;
ShowMessageFmt('Affected rows on Table2: %d', [NumRows]);

در واقع کد شما این میشه :
 adoquery1.sql.add('SET @errorcode=0;');
adoquery1.sql.add('CALL EBIMSMS1('''+Tel_No_old+''','''+Message_Send+''',15,@errorcode);'');
adoquery1.sql.add('select @errorcode;');
adoquery1.open;
پیروز باشید


RE: گرفتن خروجی از استورپروسیجر - nasrinPoornejaty - 06-16-2013

سلامبعد از  open کردن خطای زیر را میگیرم
که
attach کردم


RE: گرفتن خروجی از استورپروسیجر - Amin_Mansouri - 06-16-2013

message_send داخلش چی هست ؟ مثل اررو sql injection ایجاد میکنه
از
کد:
quotedstr
استفاده کن
اینجوری کن : 
کد:
 adoquery1.sql.add('CALLEBIMSMS1('+quotedstr(Tel_No_old)+','+quotedstr(Message_Send)+',15,@errorcode);');
 


RE: گرفتن خروجی از استورپروسیجر - nasrinPoornejaty - 06-16-2013

داخل
message_send
یک متن
text
هست با طول متغیر


RE: گرفتن خروجی از استورپروسیجر - Amin_Mansouri - 06-16-2013

کدی که دادم جایگزین کردید؟
جواب چی شد؟


RE: گرفتن خروجی از استورپروسیجر - nasrinPoornejaty - 06-22-2013

هیچی ، من جواب
adoquery1.sql.add('select @errorcode;');
رو می خوام ببینم ، که نمی تونم