AutoInc SQL function

AutoInc is ILE/C SQL Function to auto increment an internal counter without using OPEN Cursor, FETCH.

You Can View User Feedback To This Tip

AutoInc is ILE/C SQL Function to auto increment an internal counter without using OPEN Cursor, FETCH, etc. By example: "INSERT INTO Tblt (ID, FLD1, FLD2) SELECT AutoInc(0), FldA, FldB FROM AnotherTBL" The function take an integer input parameter (the start value) and returns an integer value too.


   
/*
To compile use from command line:
CRTSRVPGM SRVPGM(QGPL/AUTOINC) EXPORT(*ALL) ACTGRP(*CALLER)

to register function use from strsql:
CREATE FUNCTION QGPL/AUTOINC(INTEGER)  
RETURNS INTEGER 
EXTERNAL NAME 'QGPL/AUTOINC(AUTOINC)'
LANGUAGE C
NO SQL  
PARAMETER STYLE SQL
DETERMINISTIC
ALLOW PARALLEL; 

*/
#include 
 
  

int   value=0;
int   last=0;

void AUTOINC( int* ValInt,
    int* ValRet,
    short* ind1,
    short* ind2,
    char* sqlstate,
    char* funcname,
    char* specname,
    char* msgtext )
{
     if( *ValInt != value ){
         last = *ValInt;
         value = *ValInt;
     }
     last++;
     *ValRet = last;
     *ind2=0; 
 

USER FEEDBACK TO THIS TIP

  • The source for the SQL User-defined function "AUTOINC" written in C is missing the last "}" at the end of the source.—Richard Walters

This was last published in June 2001

Dig Deeper on RPG iSeries programming

Start the conversation

Send me notifications when other members comment.

By submitting you agree to receive email from TechTarget and its partners. If you reside outside of the United States, you consent to having your personal data transferred to and processed in the United States. Privacy

Please create a username to comment.

-ADS BY GOOGLE

SearchEnterpriseLinux

SearchDataCenter

Close