اگر آپ ایک پروگرامر ہیں تو ، آپ کو استثناء کی ہینڈلنگ کے تصور سے واقف ہونا کسی کا لازمی حصہ ہے . چونکہ غلطیاں ناگزیر ہیں اور یہاں تک کہ ہم میں سے ہوشیار بھی کوڈ لکھتے وقت غلطیاں کرسکتے ہیں ، لہذا ہمیں ان سے نمٹنے کے طریقے سے واقف ہونا چاہئے۔ اس مضمون میں ، ہم خاص طور پر پی ایل / ایس کیو ایل میں رعایت سے نمٹنے کے بارے میں سیکھ رہے ہیں۔
ذیل میں اس مضمون میں شامل عنوانات ہیں:
ایک استثناء کیا ہے؟
کوئی بھی غیر معمولی حالت یا واقعہ جو ہمارے پروگرام کی ہدایت کے معمول کے بہاؤ کو وقت کے وقت یا آسان الفاظ میں رکاوٹ بناتا ہے تو یہ ایک غلطی ہے۔
PL / SQL میں استثناء ہینڈلنگ کا نحو
شروع کریں اس سے پہلے استثناء جب 1 اپنائیل 1-ہینڈلنگ-بیانات جب استثناء 2 تب استثناء 2-ہینڈلنگ-بیانات جب استثناء 3 تب استثناء-ہینڈلنگ-بیانات ........ جب دوسروں کو بھی اپیل 3-ہینڈلنگ بیانات ختم ہوں
یہاں ، ہم جتنے استثناءات کو سنبھالنا چاہتے ہیں ان کی فہرست درج کر سکتے ہیں۔ پہلے سے طے شدہ رعایت کو 'جب دوسروں کے ہوتے ہیں' کا استعمال کرتے ہوئے سنبھالا جائے گا
پی ایل / ایس کیو ایل میں مستثنیات ہینڈلنگ کی مثال
مندرجہ ذیل پروگرام میں کسی ایسے طالب علم کا نام اور پتہ دکھاتا ہے جس کی شناخت دی گئی ہو۔ چونکہ ہمارے ڈیٹا بیس میں ID ویلیو 8 والا کوئی طالب علم نہیں ہے ، لہذا یہ پروگرام رن ٹائم کی رعایت NO_DATA_FOUND کو اٹھاتا ہے ، جو EXCEPTION بلاک میں پکڑا گیا ہے۔
DECLARE s_id studentS.id٪ type: = 8 s_name studentS.Ne٪٪ s_loc studentS.loc٪ type BEGIN منتخب کریں نام ، پچھلے حصے میں نام ، s_loc سے طلبہ کہاں id = s_id DBMS_OUTPUT.PUT_LINE ('نام:' || s_UT) DBMS_ .PUT_LINE ('مقام:' || s_loc) اس کے بعد جب کوئی_ڈیٹا_ فائونڈ نہیں تب dbms_output.put_line ('ایسا کوئی طالب علم نہیں!') جب دوسروں کو THB dbms_output.put_line ('افوہ ، غلطی!') ختم
آؤٹ پٹ
ایسا کوئی طالب علم نہیں! PL / SQL طریقہ کار کامیابی کے ساتھ مکمل ہوا۔
یہاں ، ہم جتنے استثناءات کو سنبھالنا چاہتے ہیں ان کی فہرست درج کر سکتے ہیں۔ پہلے سے طے شدہ رعایت کا استعمال کرتے ہوئے سنبھالا جائے گا ‘۔ جب دوسروں '
PL / SQL میں مستثنیات کی اقسام
- سسٹم کی تعریف
- صارف سے انکار
اس مضمون میں رعایت سے نمٹنے کے بارے میں آگے PL / SQL آئیے ، ان دونوں اقسام کے بارے میں تفصیل سے بات کرتے ہیں۔
ازگر __init__ طریقہ
سسٹم کی تعریف
اوریکل سرور کے ذریعہ واضح طور پر تعریف اور برقرار رکھا گیا ہے ، یہ استثناء بنیادی طور پر اوریکل اسٹینڈرڈ پیکیج میں بیان کیے گئے ہیں۔ جب بھی پروگرام کے اندر کوئی رعایت واقع ہوتی ہے تو ، اوریکل سرور اوریکل معیاری پیکیج میں دستیاب مستثنیات کے سیٹ سے مناسب استثناء کی شناخت کرتا ہے اور اس کی نشاندہی کرتا ہے۔ بنیادی طور پر ، یہ استثناء پہلے سے طے شدہ ہیں PL / SQL جو اٹھتا ہے جب خاص طور پر ڈیٹا بیس اصول کی خلاف ورزی ہوتی ہے .
سسٹم سے طے شدہ مستثنیات مزید دو اقسام میں تقسیم کیا گیا ہے:
- نامزد نظام استثناء
- بے نام نظام مستثنیات
نامزد نظام استثناء
نامزد PL / SQL استثناء ہیں PL / SQL کے معیاری پیکیج میں نامزد کیا گیا لہذا ، ڈویلپر کو اپنے کوڈ میں PL / SQL مستثنیات کی وضاحت کرنے کی ضرورت نہیں ہے۔ پی ایل / ایس کیو ایل بہت سے پہلے سے بیان کردہ نام مستثنیات فراہم کرتا ہے ، جو کسی پروگرام کے ذریعہ جب کسی ڈیٹا بیس اصول کی خلاف ورزی ہوتی ہے تو اس پر عمل درآمد کیا جاتا ہے۔ مندرجہ ذیل جدول میں پہلے سے بیان کردہ کچھ اہم مستثنیات اور مائنس کی فہرست دی گئی ہے
رعایت | اوریکل غلطی | ایس کیو ایل کوڈ | تفصیل |
ACCESS_INTO_NULL | 06530 | -6530 | جب اس کو اٹھایا جاتا ہے جب کوئی کالعدم شے خود بخود ایک قیمت تفویض کردی جاتی ہے۔ |
CASE_NOT_FOUND | 06592 | -6592 | یہ اٹھایا جاتا ہے جب ایک کی WHEN شق میں سے کوئی بھی انتخاب نہیں کیس کا بیان منتخب کیا گیا ہے ، اور یہاں ELSE کی کوئی شق نہیں ہے۔ |
COLLECTION_IS_NULL | 06531 | -6531 | یہ اٹھایا جاتا ہے جب کوئی پروگرام EXISS کے علاوہ کسی غیر منقولہ گھومنے والی جدول یا ورارے پر جمع کرنے کے طریقوں کا اطلاق کرنے کی کوشش کرتا ہے ، یا پروگرام کسی بلاضرع گھومنے والے جدول یا مختلف قسم کے عناصر کو اقدار تفویض کرنے کی کوشش کرتا ہے۔ |
DUP_VAL_ON_INDEX | 00001 | ایک | یہ اس وقت اٹھایا جاتا ہے جب ایک منفرد انڈیکس والے کالم میں ڈپلیکیٹ اقدار کو ذخیرہ کرنے کی کوشش کی جائے۔ |
INVALID_CURSOR | 01001 | -1001 | یہ اٹھایا جاتا ہے جب کرسر آپریشن کرنے کی کوشش کی جاتی ہے جس کی اجازت نہیں ہے ، جیسے کہ نہ کھولے ہوئے کرسر کو بند کرنا۔ |
ناموزوں نمبر | 01722 | -1722 | یہ اس وقت اٹھایا جاتا ہے جب کسی کردار میں اسٹرنگ کو کسی نمبر میں تبدیل کرنا ناکام ہوجاتا ہے کیونکہ سٹرنگ درست تعداد کی نمائندگی نہیں کرتی ہے۔ |
LOGIN_DENIED | 01017 | -1017 | یہ تب اٹھایا جاتا ہے جب ایک پروگرام نامعلوم صارف نام یا پاس ورڈ کے ساتھ ڈیٹا بیس پر لاگ ان ہونے کی کوشش کرتا ہے۔ |
کوئی ڈیٹا نہیں ملا | 01403 | +100 | یہ اٹھایا جاتا ہے جب کوئی منتخب INTO بیان کوئی قطار نہیں دیتا ہے۔ |
NOT_LOGGED_ON | 01012 | -1012 | یہ اٹھایا جاتا ہے جب ڈیٹا بیس سے منسلک کئے بغیر ڈیٹا بیس کال جاری کی جاتی ہے۔ |
PROGRAM_ERROR | 06501 | -6501 | جب پی ایل / ایس کیو ایل کو اندرونی مسئلہ ہو تو یہ اٹھایا جاتا ہے۔ |
ROWTYPE_MISMATCH | 06504 | -6504 | اس کو اٹھایا جاتا ہے جب کوئی متغیر میں متناسب اعداد و شمار کی حامل ایک کرسر کی قیمت لائی جاتی ہے۔ |
SELF_IS_NULL | 30625 | -30625 | یہ اس وقت اٹھایا جاتا ہے جب ممبر کا طریقہ استعمال کیا جاتا ہے ، لیکن شے کی قسم کی مثال شروع نہیں کی گئی تھی۔ |
STORAGE_ERROR | 06500 | -6500 | یہ اٹھایا جاتا ہے جب PL / SQL میموری ختم ہوجاتا ہے یا میموری خراب ہوجاتا ہے۔ |
TOO_MANY_ROWS | 01422 | -1422 | یہ اٹھایا جاتا ہے جب ایک منتخب INTO بیان ایک قطار سے زیادہ قطار لوٹاتا ہے۔ |
VALUE_ERROR | 06502 | -6502 | اس کو اٹھایا جاتا ہے جب ایک ریاضی ، تبادلوں ، تنزلی ، یا سائز کی رکاوٹ کی غلطی ہوتی ہے. |
ZERO_DIVIDE | 01476 | 1476 | یہ اس وقت اٹھایا جاتا ہے جب کسی تعداد کو صفر سے تقسیم کرنے کی کوشش کی جاتی ہے۔ |
مثال
تخلیق کریں یا تبدیلی کا طریقہ کار شامل کریں_نئے_محصلہ (طالب علم _ نمبر میں نمبر ، طالب علم _ نام_چنار 2 میں) طالب علم (طالب علم _ طالب ، __ نام) ابتدائی داخل ہے (طالب علم _ ID_in ، طالب علم _ نام_ن) استثناء جب دوپہر_____ __ ) جب دوسروں کو اس وقت _ ایپلی کیشن ایرر (-20002 ، 'ایک خرابی پیش آگئی۔') اختتام پذیر
اس مضمون میں پی ایل / ایس کیو ایل میں مستثنیات ہینڈلنگ کے بارے میں بات کرتے ہوئے ، آئیے ہم سمجھتے ہیں کہ کون سا نامعلوم نظام استثناء ہے۔
نامعلوم نظام مستثنیات
سسٹم کی مستثنیات جس کے لئے اوریکل کا نام نہیں ہے وہ بے نامی نظام استثناء کے نام سے جانا جاتا ہے۔ یہ استثناء کثرت سے نہیں پایا جاتا ہے اور کوڈ اور اس سے وابستہ پیغام کے ساتھ لکھا جاتا ہے۔
بے نامی نظام استثنات کو سنبھالنے کے بنیادی طور پر دو طریقے ہیں:
1. WHEN OTHERS استثناء ہینڈلر کا استعمال
2. استثنا کوڈ کو کسی نام سے منسلک کرنا اور اسے نامزد استثناء کے طور پر استعمال کرنا۔
بے نامی نظام مستثنیات کے ل followed کچھ اقدامات یہ ہیں:
- انہیں صریحا. بلند کریں۔
- ایسی صورت میں جب وہ ’جب دوسروں کو‘ میں نہیں سنبھالتے ہیں تو ، انہیں واضح طور پر سنبھالا جانا ہے۔
- واضح طور پر استثناء کو سنبھالنے کے ل they ، انھیں پراگما ایکسیپٹیشن کا استعمال کرتے ہوئے قرار دیا جاسکتا ہے اور استثنا کے حصے میں صارف کی وضاحت کردہ مستثنیٰ نام کا حوالہ دے کر سنبھالا جاتا ہے۔
پراگما EXCEPTION_INIT کا استعمال کرتے ہوئے بے نام مستثنیات سے نمٹنے کی ایک مثال مضمون کے بعد میں فراہم کی گئی ہے۔ اس مضمون میں پی ایل / ایس کیو ایل میں استثناء کو سنبھالنے کے بارے میں بات کرتے ہوئے ، آئیے صارف کی وضاحت شدہ استثناء کو سمجھیں۔
صارف کی وضاحت
دیگر تمام پروگرامنگ زبانوں کی طرح ، اوریکل بھی آپ کو اپنی رعایتوں کو نافذ کرنے والے اشتہار کا اعلان کرنے کی اجازت دیتا ہے۔ سسٹم میں بیان کردہ مستثنیات کے برعکس ، یہ استثناء واضح طور پر PL / SQL بلاک میں اٹھائے جاتے ہیں۔
اوریکل ڈیٹا بیس میں صارف کی وضاحت سے مستثنیات قرار دینے کے اقدامات
ہم درج ذیل 3 طریقوں سے اوریکل ڈیٹا بیس میں صارف کی وضاحت شدہ استثناء کی وضاحت کرسکتے ہیں۔
- متغیر کی قسم کے متغیر کا استعمال کرتے ہوئے
یہاں ، ہم ایکسیسٹیشن (ECHEPTION) کے متغیر کا اعلان کرکے صارف سے مستثنیٰ رعایت کا اعلان کرسکتے ہیں ڈیٹا کی قسم ہمارے کوڈ میں اور RAISE بیان کا استعمال کرتے ہوئے اپنے پروگرام میں یہ واضح طور پر اٹھائیں۔
- پراگما ایکسیپشن اینڈ فنٹ استعمال کرنا
ہم EXCEPTION ڈیٹا ٹائپ کے متغیر کے ساتھ ایک غیر وضاحتی غلطی نمبر کی وضاحت کرسکتے ہیں
- RAISE_APPLICATION_ERROR طریقہ استعمال کرنا
اس طریقہ کار کو استعمال کرتے ہوئے ، ہم اپنے مخصوص تخصیصی خامی نمبر اور پیغام کے ساتھ صارف کی وضاحت شدہ استثناء کا اعلان کرسکتے ہیں۔
اب تک آپ کو ان طریقوں کے بارے میں کوئی مشکل اندازہ ہوسکتا ہے جس میں ہم PL / SQL میں صارف کی وضاحت شدہ استثناء کو بڑھا سکتے ہیں۔ ہم پی ایل / ایس کیو ایل میں مستثنیات ہینڈلنگ کے بارے میں مذکورہ بالا طریقوں میں سے ہر ایک کے بارے میں سیکھیں گے۔
اس آرٹیکل میں اگلا ، آئیے ہم صارف کی وضاحتی رعایت سے نمٹنے کے مظاہروں کے ساتھ آگے بڑھتے ہیں۔
صارف کی وضاحت شدہ مستثنیات کا مظاہرہ
اس مضمون میں پی ایل / ایس کیو ایل میں استثناءی ہینڈلنگ کے بارے میں بات کرتے ہوئے ، آئیے ہم سمجھیں کہ کس طرح کی قسم کے متغیر کو استعمال کریں۔
متغیر کی قسم کے متغیر کا استعمال کرتے ہوئے
صارف کی وضاحت شدہ رعایت کے اعلان کے عمل کو تین حصوں میں تقسیم کیا گیا ہے اور یہ 3 حصے ہیں:
- متغیر مستثنیٰ ڈیٹا ٹائپ کا اعلان کریں
- استثناء اٹھائیں
- استثنا کو سنبھال لیں
آئیے مندرجہ بالا اقدامات کو تفصیل سے ظاہر کرنے کے لئے ایک کوڈ لکھتے ہیں۔
var_dividend نمبر کو بتائیں: = 10 var_divizer NUMBER: = 0 var_result NUMBER سابقہ DivZero اخراج
مذکورہ اعلامیے کے بلاک میں ، ہمارے پاس چار متغیر ہیں ، جن میں پہلے تین عام نمبر ڈیٹا ٹائپ متغیر ہیں اور چوتھا ایک جو ex_DivZero ہے خصوصی استثناء ڈیٹا ٹائپ متغیر ہے۔ چوتھا ایک صارف کی وضاحت سے مستثنیٰ ہے۔
var_dividend نمبر کو بتائیں: = 10 var_divizer NUMBER: = 0 var_result NUMBER سابقہ DivZero اخراج
اس گمنام بلاک کا مذکورہ بالا عمل ، صرف اس صورت میں عمل میں آئے گا جب تفرقہ 0 ہے۔ اگر تقسیم کار صفر ہے جیسا کہ ہمارے معاملے میں ہے ، غلطی اٹھائی جائے گی اور پروگرام کا کنٹرول اگلے تمام اقدامات چھوڑ دے گا اور مستثنیٰ ہینڈلر کے ملاپ کی تلاش کریں گے۔ ایسی صورت میں جہاں اسے کوئی دوسرا ملتا ہے ، وہ اسی کے مطابق کارروائی کرے گا ، بصورت دیگر یہ پروگرام کو ختم کردے گا یا نظام کو بغیر کسی ہینڈل کی تعریف شدہ غلطی کے ذریعہ ہمیں اشارہ کرے گا۔
استثنا جب EX_DivZero پھر DBMS_OUTPUT.PUT_LINE (‘غلطی ہے ، تقسیم کرنے والا صفر نہیں ہوسکتا ہے’)
یہ استثناء ہینڈلر۔ جیسے ہی صارف 0 کے بطور تقطیر داخل کرتا ہے ، مندرجہ بالا میسج کے تار کا اشارہ کیا جائے گا۔
حتمی کوڈ:
DECLARE var_dividend NUMBER: = 10 var_diviser NUMBER: = 0 var_result NUMBER سابقہ DivZero اخراج BEGIN IF اگر var_divisor = 0 پھر RAISE سابقہ DivZero END IF var_result: = var_dividend / var_divisor DBMS_OUTPUT.PU_digiv '(Riv_line BININ) = 0 پھر RAISSE سابق DivZero END اگر Var_result: = var_dividend / var_divisor DBMS_OUTPUT.PUT_LINE ('نتیجہ =' || var_result) END
اس مضمون میں پی ایل / ایس کیو ایل میں مستثنیات ہینڈلنگ کے بارے میں بات کرتے ہوئے ، آئیے ہم PRAGMA_EXCEPTION_INIT طریقہ کو استعمال کرنے کا طریقہ سمجھیں۔
پراگما ایکسیپشن اینڈ فنٹ استعمال کرنا
میں پراگما ایکسیپٹیشن نمبر ، ایک مستثنیٰ نام اوریکل غلطی نمبر سے وابستہ ہے۔ اس نام کو غلطی کے ل exception استثناء کے ہینڈلر کو ڈیزائن کرنے میں استعمال کیا جاسکتا ہے۔بہت ساری صارف کی غلطیوں والے بڑے پروجیکٹس کے ل PR ، پراگما ایکسیپٹیشن نمبر سب سے زیادہ مفید اور موزوں طریقہ ہے۔
نحو:
PRAGMA ایکسیپٹیشن نمبر (استثناء کا نام ، -وریکل_آرر_نمبر)
مثال
ڈیڈلاک_ڈیکٹڈ ایکسیگمنٹ پروگما ایکسیپیشن نمبر (ڈیڈ لاک_ڈٹکٹکٹ ، -60) شروع کریں - کچھ آپریشن جس کی وجہ سے ایک ORA-00060 غلطی پیدا ہوجائے گی جب ڈیڈ لاک_جب پتہ چلا کہ اس نقص کو ختم کریں۔
پریگما ایکسیپشن اینڈ آئپی (OMPEMA) ایک مرتب نام کو ایک مستثنی نام کو اوریکل غلطی نمبر کے ساتھ منسلک کرنے کے لئے کہتا ہے جیسا کہ پہلے ذکر کیا گیا ہے۔ یہ آپ کو کسی بھی داخلی استثناء کا نام لے کر حوالہ دیتا ہے اور اس کے لئے ایک مخصوص ہینڈلر لکھ سکتا ہے۔ جب آپ کو کسی غلطی کا اسٹیک ، یا غلطی والے پیغامات کی ترتیب نظر آتی ہے تو ، سب سے اوپر والا وہی ہوتا ہے جسے پھنس کر سنبھالا جاسکتا ہے۔
اس مضمون میں پی ایل / ایس کیو ایل میں استثناءی ہینڈلنگ کے بارے میں بات کرتے ہوئے ، آئیے سمجھیں کہ RAISE_APPLICATION_ERROR طریقہ کو کس طرح استعمال کیا جائے۔
RAISE_APPLICATION_ERROR طریقہ استعمال کرنا
یہ ایک طریقہ کار ہے جو اوریکل سافٹ ویئر کے ساتھ تشکیل پاتا ہے۔ اس طریقہ کار کا استعمال کرتے ہوئے ہم ایک غلطی نمبر کو کسٹم غلطی کے پیغام سے مربوط کرسکتے ہیں۔ غلطی کی تعداد اور کسٹم غلطی پیغام دونوں کا امتزاج کرتے ہوئے ، ایک غلطی کی تار تیار کی جاسکتی ہے جو ان پہلے سے طے شدہ غلطی کے تار کی طرح دکھائی دیتی ہے جو کسی غلطی کا سامنا کرنے پر اوریکل کے ذریعہ ظاہر ہوتا ہے۔ RAISE_APPLICATION_ERROR طریقہ کار DBMS_STANDARD پیکیج کے اندر پایا جاتا ہے
نحو
اٹھائیں_پلی کیشن_ایرر (غلطی کی تعداد ، پیغام [، TRUE])
مثال
/ * ایک ٹرگر trg_emp_detail_chk بنائی گئی ہے۔ * / تخلیق کریں یا رد عمل ٹرگر_نیمپٹیل_چک / * ٹرگر کا وقت EMPLOYEES ٹیبل پر پہلے اپ ڈیٹ ہونے کا اعلان کیا گیا ہے۔ * / ملازمین پر اپ ڈیٹ ہونے سے پہلے DISLARE اجازت_منظور شروع کرنا چاہے / IEGIN / * جانچ پڑتال شروع کریں سسٹم کا دن ہفتہ یا اتوار کا دن ہے یا نہیں۔ * / اگر ٹرم (TO_CHAR (sysdate، 'Day')) میں ('ہفتہ'، 'اتوار') پھر اضافہ_ایپلی کیشن ایریر (-20000، 'آپ کرنے کا اختیار نہیں ہے اختتام ہفتہ میں کسی بھی قسم کی تبدیلی !! ') / * طریقہ کار #_application_error کو پہلے پیرامیٹر ویلیو کے ساتھ -20000 کہا جاتا ہے اور دوسرا پیرامیٹر ڈیفالٹ ٹیکسٹ کے ساتھ جس میں کہا گیا ہے کہ اختتام ہفتہ میں کوئی ترمیم کرنے کا صارف مجاز نہیں ہے۔ * / اگر اختتام ہو
اس کے ساتھ ہم 'پی ایل / ایس کیو ایل میں استثناء ہینڈلنگ' پر اس مضمون کے اختتام پر پہنچ گئے ہیں۔ مجھے امید ہے کہ اس موضوع کو اچھی طرح سمجھا جائے گا اور آپ کی مدد کی ہوگی۔ اس مضمون میں بیان کردہ طریقوں کو اپنے اپنے کوڈ لکھنے کی کوشش کریں۔
اگر آپ اس ٹکنالوجی کے پیشہ ور افراد سے تربیت حاصل کرنا چاہتے ہیں تو ، آپ ایورورکا سے ساختی تربیت کا انتخاب کرسکتے ہیں! یہ چیک کریں ایڈوریکا کے ذریعہ ، ایک قابل اعتماد آن لائن سیکھنے والی کمپنی جس کی دنیا بھر میں 250،000 سے زیادہ مطمئن سیکھنے والوں کا نیٹ ورک موجود ہے۔ یہ کورس آپ کو اعداد و شمار کو منظم کرنے اور ایس کیو ایل ڈیٹا بیس کا انتظام کرنے کے لئے بنیادی تصورات اور جدید آلات اور تکنیک کی تربیت دیتا ہے۔ اس میں مائی ایس کیو ایل ورک بینچ ، مائی ایس کیو ایل سرور ، ڈیٹا ماڈلنگ ، ایس ایس کیو ایل رابط ، ڈیٹا بیس ڈیزائن ، مائی ایس کیو ایل کمانڈ لائن ، ایس کیو ایل افعال وغیرہ جیسے تصورات پر ہینڈ آن سیکھنا شامل ہے تربیت کے اختتام پر آپ اپنے ایس ایس کیو ایل ڈیٹا بیس کو تشکیل دینے اور اس کا نظم و نسق کرسکیں گے۔ ڈیٹا
ہمارے لئے ایک سوال ہے؟ برائے کرم اس 'PL / SQL میں استثناء ہینڈلنگ' مضمون کے تبصرے سیکشن میں اس کا ذکر کریں اور ہم جلد از جلد آپ کے پاس مل جائیں گے۔