×

Good News Everybody!

The new search engine is LIVE!

Please report any problems to david (at) midrange.com.




Have you read the "Stored Procedures, Triggers and User Defined Functions on
DB2 Universal Database for iSeries" redbook. Here is a link to downloadable
PDF: http://www.redbooks.ibm.com/abstracts/sg246503.html?Open

You don't show it, so let me ask, did you compile this module into a service
program PGMRPGMLIB/DEBUGOUT?
Do 'fileName' and 'message' get passed in as struct that has a short 2 byte
integer value giving you the length of the data, followed by the data
itself?

Elvis


-----Original Message-----
From: c400-l-bounces+ebudimlic=centerfieldtechnology.com@xxxxxxxxxxxx
[mailto:c400-l-bounces+ebudimlic=centerfieldtechnology.com@xxxxxxxxxxxx] On
Behalf Of Stephen More
Sent: Friday, March 18, 2005 6:41 AM
To: c400-l@xxxxxxxxxxxx
Subject: [C400-L] DB2 UDF written in C

I am trying to a create a DB2 function that writes output to a file.
I am close, but it does not seem to work. Does anyone know what the
problem could be ?




/*                                       
    This method will be called from DB2  
                                         
*/                                       
#include <stdio.h>
#include <time.h>

void DEBUGOUT( char* fileName,             
    char* message,                      
    int* ValRet,                         
    short* inind,                        
    short* outind,                       
    char* sqlstate,                      
    char* funcname,                      
    char* specname,                      
    char* msgtext )                      
{                                       
        FILE *fp;
        char *fileType; 
        time_t  now;
        struct tm *ptr;
        char buf1[20];

        if( ( fp = fopen( fileName, "a" )) != NULL )
        {
                time( &now );
                ptr = localtime( &now );
                strftime(buf1, 80, "%m/%d/%y %H:%M:%S %p", ptr);

                *ValRet = fprintf( fp, "%s %s\n", buf1, message  );

                fclose( fp );
        }
        else
        {
            *ValRet = 0;
            *outind = 0;                        
        }
}  



CRTCMOD MODULE(PGMRPGMLIB/DEBUGOUT) SRCFILE(PGMRSRCLIB/CSRC)
DBGVIEW(*SOURCE)
CRTSRVPGM SRVPGM(PGMRPGMLIB/DEBUGOUT) EXPORT(*ALL) ACTGRP(*CALLER)



CREATE FUNCTION PGMRPGMLIB/DEBUGOUT( VARCHAR(50), VARCHAR(50) )    
RETURNS INTEGER                                       
EXTERNAL NAME 'PGMRPGMLIB/DEBUGOUT(DEBUGOUT)'                
LANGUAGE C                                            
NO SQL                                                
PARAMETER STYLE SQL                                   
DETERMINISTIC;             

               


select ( '/tmp/out.txt', 'Hello' ) from sysibm/sysdummy1

I am only getting back 0.


-Thanks
Steve More
_______________________________________________
This is the C programming iSeries / AS400 (C400-L) mailing list
To post a message email: C400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/c400-l
or email: C400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/c400-l.






As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2026 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.