|
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 mailing list archive is Copyright 1997-2024 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.