কম্পিউটার

যখন BIND ছাড়া প্রোগ্রামে নন-SQL পরিবর্তন করা হয় তখন সম্পাদনের ফলাফল কী?


সমস্যা: একটি COBOL-DB2 প্রোগ্রাম PIC X(5) থেকে PIC X(8) একটি ভেরিয়েবলের দৈর্ঘ্য বাড়াতে পরিবর্তন করা হয়। যাইহোক, প্রোগ্রামের SQL এ কোন পরিবর্তন নেই. এই পরিবর্তনগুলির জন্য প্রোগ্রামের পরিকল্পনা/প্যাকেজ আবদ্ধ না হলে ফলাফল কী হবে?

সমাধান

PIC X(5) থেকে PIC X(8) তে পরিবর্তনশীল দৈর্ঘ্যের পরিবর্তন কোন DB2 পরিবর্তন নয় এবং প্রোগ্রামে SQL স্টেটমেন্টের জন্য কোন পরিবর্তনের প্রয়োজন নেই। যাইহোক, এখনও আমাদের এটির প্ল্যান/প্যাকেজ বাঁধতে হবে অন্যথায় আমরা এসকিউএল এরর কোড-818 পাব যা বলে যে "প্রি-কম্পাইলার-জেনারেটেড টাইমস্ট্যাম্প x লোড মডিউলে বাইন্ড টাইমস্ট্যাম্প এবং এটি থেকে তৈরি করা থেকে আলাদা"। পি>

এই SQL ত্রুটির কারণ নিম্নরূপ - একটি COBOL-DB2 প্রোগ্রামের প্রতিটি সম্পাদনে, লোড মডিউল এবং প্যাকেজ/DBRM-এর টাইমস্ট্যাম্প তুলনা করা হয়। যদি প্রোগ্রামে ভেরিয়েবলের দৈর্ঘ্যের পরিবর্তন হয় (এবং কোন SQL পরিবর্তন নেই) এবং এটি সংকলিত হয়, তাহলে লোড মডিউলটিতে নতুন উত্পন্ন টাইমস্ট্যাম্প থাকবে এবং অন্যদিকে BIND সঞ্চালিত না হলে, প্যাকেজ/ডিবিআরএম-এর একটি পুরানো টাইমস্ট্যাম্প থাকবে। যখন এই প্রোগ্রামটি কার্যকর করা হয়, তখন এই প্রোগ্রামটিকে কল করা JCL ধাপ SQL এরর কোড -818 এর সাথে ব্যর্থ হবে৷

যদি আমাদের একটি COBOL-DB2 প্রোগ্রাম থাকে যার জন্য SQL স্টেটমেন্ট ভবিষ্যতে কখনই পরিবর্তন হবে না, আমরা এই প্রোগ্রামটিকে লেভেল বিকল্পের সাথে প্রাক-কম্পাইল করতে পারি। নিচে লেভেল বিকল্প ব্যবহার করে 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. সি টোকেন কি?

  2. C ভাষায় স্থানীয় স্ট্যাটিক ভেরিয়েবল কি কি?

  3. সি ভাষায় প্রি-প্রসেসর কমান্ডগুলি কী কী?

  4. সি প্রোগ্রামকে মেশিন কোডে রূপান্তর করার 4টি ধাপ কী কী?