Assembly and DB2

Ask/Clarify the questions on ASSEMBLER language.

Moderator: Moderator Group

Post Reply
Mohamed Tharwat
Member
Posts: 1
Joined: Sat Jul 12, 2014 5:09 pm

Assembly and DB2

Post by Mohamed Tharwat » Sat Jul 12, 2014 5:30 pm

Hi all,
I am a new member in this forum and also totaly beginner in assembly coding, i running the below code but i face some errors:

Code: Select all

//ASSEM     JOB (xyz),'xyz',CLASS=A,                      
//          MSGCLASS=X,REGION=4096K,NOTIFY=&SYSUID                  
//*                                                                
//JOBLIB  DD DSN=XYZ.LIB.LOADLIB,DISP=SHR                        
//JCLLIB  JCLLIB ORDER=(XYZ.LIB.PROC,ASM.SASMSAM1)            
//*                                                                
//IDCAMS    EXEC PGM=IDCAMS                                        
//SYSPRINT  DD SYSOUT=*                                            
//SYSIN     DD *                                                    
  DELETE    ESSNBE.ASSEM3                                          
//*                                                                
//TRYIT    EXEC PROC=HLASMCLG                                      
//*                                                                
//SYSIN DD *                                                        
PROG0010 CSECT                                                      
         YREGS                                                      
         STM   R14,R12,12(R13)                                      
         LR    R12,R15                                              
         USING PROG0010,R12                                        
*                                                                  
         L     R6,PROGSIZ    <- MEMORY SPACE NEEDED BY THE PROGRAM 
         A     R6,SQLDSIZ    <- SQL DSECT SIZE                      
         GETMAIN R,LV=&#40;6&#41;                                          
*                                                                  
         LR    R10,R1                                              
         LR    R2,R10                                              
         LR    R3,R6                                                
         SR    R4,R4                                                
         SR    R5,R5                                                
         MVCL  R2,R4    <- CLEARING OUT THE OBTAINED SPACE          
*                                                                  
         OPEN  &#40;TESTOUT,OUTPUT&#41;                                    
*                                                                  
         ST    R13,4&#40;R10&#41;                                          
         ST    R10,8&#40;R13&#41;                                          
         LR    R13,R10                                              
         USING PROGAREA,R13                                        
         LR    R9,R13                                                    
         A     R9,PROGSIZ                                                
         USING SQLDSECT,R9                                              
         ST    R6,GETLENTH                                              
         B     LOOP1                                                    
FD100    DC    A&#40;100&#41;                                                    
*                                                                        
LOOP1    EXEC SQL DECLARE C1 CURSOR FOR                                X 
                  SELECT * FROM XYZ.TGEN008                          
                  FETCH FIRST 2 ROW ONLY                                
         EXEC SQL OPEN C1                                                
*                                                                        
         FTCHLOOP EQU *                                                  
         DS    0H                                                        
         EXEC SQL FETCH C1 INTO                                        X 
                   &#58;A_DDR                                                
         DS    0H                                                        
         CLC   SQLCODE,FD100                                            
         BE    SQLEND                                                    
*                                                                        
         PUT   TESTOUT,DCL_VAR                                          
         B     FTCHLOOP                                                  
*                                                                        
SQLEND   DS    0H                                                        
         EXEC SQL CLOSE C1                                              
         CLOSE &#40;TESTOUT&#41;                                                
         L     R0,GETLENTH                                              
         LR    R1,R13                                                    
         L     R13,4&#40;R13&#41;                                                
         FREEMAIN R,LV=&#40;0&#41;,A=&#40;1&#41;                                        
         LM    R14,R12,12&#40;R13&#41;                                          
         SR    R15,R15                                                  
         BR    R14                                                      
         EJECT                                                          
         LTORG                                                          
PROGAREA DSECT                                                          
SAVE     DS    18F                                                      
SAVE     DS    18F                                                      
GETLENTH DS    F                                                        
DCL_VAR  DS    0CL40                                                    
A_DDR    DS    CL40                                                      
         EXEC SQL INCLUDE SQLCA                                          
         CNOP  0,4                                                      
         DS    0D                                                        
PROGSIZE EQU   *-PROGAREA                                                
PROG0010 CSECT                                                          
PROGSIZ  DC    A&#40;PROGSIZE&#41;                                              
TESTOUT  DCB DSORG=PS,MACRF=PM,LRECL=40,BLKSIZE=1090,DDNAME=TESTOUT,  X 
             RECFM=FB                                                    
         END                                                            
//TESTOUT   DD DSN=ESSNBE.ASSEM3,SPACE=&#40;TRK,&#40;1,1&#41;,RLSE&#41;,                
//          DISP=&#40;NEW,CATLG,DELETE&#41;

Errors :
After running it i got the following SAMPLE OF ERRORS in SYSPRINT :
** ASMA044E Undefined symbol - SQLDSIZ
** ASMA057E Undefined operation code - EXEC
** ASMA044E Undefined symbol - SQLDSECT

Please advice.
Thanks in advance.

NicC
Active Member
Posts: 650
Joined: Sun Jul 24, 2011 5:27 pm
Location: Down on the pig farm

Post by NicC » Sun Jul 13, 2014 5:03 am

As stated in another forum you need to get you SQL statements converted into assembler statements. This is done by invoking the relevant DB2 pre-processor. This is normally built in to the relevant procedure. If you do not know which it is ask you system programmers or someone else in your organisation who does DB2/Assembler programming.
Regards
Nic

Post Reply

FREE TUTORIALS

Tutorials
Free tutorials from mainframegurukul
  • JCL Tutorial
    Covers all important JCL concepts.
  • Cobol Tutorial
    This tutorials covers all Cobol Topics from STRING to COMP-3.
  • DB2 Tutorial
    DB2 Tutorial focuses on DB2 COBOL Programming.
  • SORT Tutorial
    This Tutorial covers all important aspects of DFSORT with examples
  • CICS Tutorial
    This CICS tutorial covers CICS concepts and CICS Basics, CICS COBOL Programming.
Interview
Mainframe Interview questions



Other References
Mainframe Tools and others