Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> MySql

जब BIND के बिना प्रोग्राम में गैर-एसक्यूएल परिवर्तन किए जाते हैं तो निष्पादन परिणाम क्या होता है?

<घंटा/>

समस्या: एक COBOL-DB2 प्रोग्राम को PIC X(5) से PIC X(8) तक एक वेरिएबल की लंबाई बढ़ाने के लिए बदला गया है। हालाँकि, प्रोग्राम के SQL में कोई परिवर्तन नहीं हैं। यदि कार्यक्रम की योजना/पैकेज इन परिवर्तनों के लिए बाध्य नहीं है तो परिणाम क्या होगा?

समाधान

PIC X(5) से PIC X(8) में परिवर्तनशील लंबाई परिवर्तन DB2 परिवर्तन नहीं है और प्रोग्राम में SQL कथनों के लिए किसी संशोधन की आवश्यकता नहीं है। हालाँकि, फिर भी हमें इसकी योजना/पैकेज को बाइंड करने की आवश्यकता है अन्यथा हमें SQL त्रुटि कोड -818 मिलेगा जिसमें कहा गया है कि "लोड मॉड्यूल में प्रीकंपाइलर-जेनरेटेड टाइमस्टैम्प x बाइंड टाइमस्टैम्प से अलग है और डीबीआरएम जेड से बनाया गया है"।

इस SQL ​​​​त्रुटि का कारण निम्नलिखित है - COBOL-DB2 प्रोग्राम के प्रत्येक निष्पादन में, लोड मॉड्यूल और पैकेज/DBRM के टाइमस्टैम्प की तुलना की जाती है। यदि प्रोग्राम में चर की लंबाई में कोई परिवर्तन होता है (और कोई SQL परिवर्तन नहीं होते हैं) और इसे संकलित किया जाता है, तो लोड मॉड्यूल में नया उत्पन्न टाइमस्टैम्प होगा और दूसरी ओर यदि BIND का प्रदर्शन नहीं किया जाता है, तो पैकेज/डीबीआरएम में पुराना टाइमस्टैम्प होगा। जब यह प्रोग्राम निष्पादित होता है, तो इस प्रोग्राम को कॉल करने वाला JCL चरण SQL त्रुटि कोड -818 के साथ विफल हो जाएगा।

यदि हमारे पास COBOL-DB2 प्रोग्राम है जिसके लिए SQL स्टेटमेंट भविष्य में कभी नहीं बदलने वाला है, तो हम इस प्रोग्राम को LEVEL विकल्प के साथ प्री-कंपाइल कर सकते हैं। नीचे LEVEL विकल्प का उपयोग करके BIND चरण का नमूना दिया गया है।

उदाहरण

//BIND EXEC PGM=IKJEFT01
//STEPLIB DD DSN=DIS.TEST.LOADLIB,DISP=SHR
//SYSOUT DD SYSOUT=*
//SYSTSIN DD *
DSN SYSTEM(TB3)
BIND PLAN(PLANA) -
PKLIST(PACKA) -
LEVEL -
ACQUIRE(ALLOCATE) -
ISOLATION (RS)
/*

  1. सी में टोकन क्या हैं?

    एक टोकन और कुछ नहीं बल्कि एक प्रोग्राम का सबसे छोटा तत्व है जो कंपाइलर के लिए सार्थक है। कंपाइलर जो किसी प्रोग्राम को सबसे छोटी इकाइयों में तोड़ता है उसे टोकन कहा जाता है और ये टोकन संकलन के विभिन्न चरणों में आगे बढ़ते हैं। प्रकार टोकन को विभिन्न प्रकारों में वर्गीकृत किया जाता है, जिनका उल्लेख नीच

  1. C भाषा में प्री-प्रोसेसर कमांड क्या हैं?

    प्रीप्रोसेसर एक प्रोग्राम है जो कंपाइलर से गुजरने से पहले सोर्स कोड भेजता है। यह प्रीप्रोसेसर निर्देशों के तहत काम करता है जो # प्रतीक से शुरू होता है। प्रकार तीन प्रकार के प्रीप्रोसेसर कमांड इस प्रकार हैं - मैक्रो प्रतिस्थापन निर्देश। फ़ाइल शामिल करने के निर्देश. संकलक नियंत्रण निर्देश।

  1. C प्रोग्राम को मशीन कोड में बदलने के 4 चरण क्या हैं?

    प्रोग्राम बनाने और चलाने की प्रक्रिया एक प्रोग्राम में निर्देशों का एक सेट होता है जो एक प्रोग्रामिंग भाषा में लिखा गया था। प्रोग्रामर का काम प्रोग्राम को लिखना और टेस्ट करना है। C प्रोग्राम को मशीनी भाषा में बदलने के 4 चरण हैं &miuns; कार्यक्रम लिखना और संपादित करना कार्यक्रम संकलित करना