Bind concepts in DB2 cobol
Answers were Sorted based on User's Feedback
The first thing is Host languages.
Whatever we are using in cobol (other than cobol langauge
command) that are called HOST language.
DB2 is also one of the host language.
COBOL compiler does not know the host language and does not
compile the same.
we will take cobol-db2 program..
Here, we are introduce PRE-COMPILER....
Pre-compiler will spilt the cobol db2 program into two
module.
1. Cobol program (fully cobol,all the host language
commands will get replaced with "MOVE and CALL" statements.
2. DBRM (DataBast Request Module)- only those commands,
which are code within 'EXEC SQL .. END-EXEC.
Now, we have spited and we have separate for each..(COBOL
and DB2)..
We know about compilation process for COBOL.
Now come to BIND process....
Bind is nothing but, compilation process of DBRM.
The output of this compilation process(BIND) is Package.
If we bind the packages then we will get Plan/Application
plan.
When we do the link-edit the cobol program, a thread will
be created between the load module of cobol and plan.
| Is This Answer Correct ? | 76 Yes | 8 No |
As Sharath requested...
As we all know, all our programming(high level language) needs to be converted(compiled) into system-understandable(low level language) to be executed.
So, SQL statements in the COBOL programs needs to be compiled, such process is called BIND. DB2 Bind compiles all your sql statements(dbrm) into an executable format.
BIND also verifies all the information in the program with DB2 databases..
Here are the list of items happening through out BIND process (as of I know :) )
1. Syntax check of SQL query
2. Availability of Tables & columns in the database
3. It uses DB2 Optimizer to create the better access path. A clear way to read/update/delete table. like.. what are the columns are reading, which indexes needs to be used, the table space..etc.
So after BIND process finished, the Package/Plan contains exactly how to do, what we meant to do in system understandable language.
Hope it helps.. My apologies, if I confused or missed something.
| Is This Answer Correct ? | 10 Yes | 0 No |
Answer / lavenderguy
Brillian answer suresh..it helped me lot....
| Is This Answer Correct ? | 7 Yes | 1 No |
Answer / sheetal
simple and best answer.very helpful,thanks a ton.
| Is This Answer Correct ? | 5 Yes | 0 No |
Awesome explanation in Easy language...
| Is This Answer Correct ? | 5 Yes | 2 No |
Answer / sharath
Nice Explanation from suresh, Appreciate if he gives more information about Bind function.
| Is This Answer Correct ? | 0 Yes | 0 No |
What do you mean by NOT NULL? When will you use it?
What is a clustering index?
What is db2 and what is the use of db2 optimizer?
What is SPUFI?
What is a dbrm in db2?
What is a page?
List out the buffer pools in db2
What is a db2 schema?
Why do we use cursor?
How to see the structure of db2 table??
How many clustering indexes can be defined for a table?
I have 3 cursors declared. Cursor1 retieves some data. Based on this curso2 will also fetches some data. In cursor3 (using for some updation) I'm using the data retrieved by the above 2 cursor. My question is, while working with cursor3, periodically if I give commit, will all the three crsors will be closed or only cursor3 will be closed?