#include "sqlinfoprint.h" #include #include #include int sqlinfoprint (char *appMsg, struct sqlca *pSqlca, const char *file, const unsigned int line) { int rc = 0; char sqlInfo[1024]; char sqlInfoToken[1024]; char sqlstateMsg[1024]; char errorMsg[1024]; if (pSqlca->sqlcode != 0 && pSqlca->sqlcode != 100) { strcpy (sqlInfo, ""); if (pSqlca->sqlcode < 0) { sprintf (sqlInfoToken, "\n---- error report ----\n"); strcat (sqlInfo, sqlInfoToken); } else { sprintf (sqlInfoToken, "\n---- warning report ----\n"); strcat (sqlInfo, sqlInfoToken); } sprintf (sqlInfoToken, " app. message = %s\n", appMsg); strcat (sqlInfo, sqlInfoToken); sprintf (sqlInfoToken, " line = %i\n", line); strcat (sqlInfo, sqlInfoToken); sprintf (sqlInfoToken, " file = %s\n", file); strcat (sqlInfo, sqlInfoToken); sprintf (sqlInfoToken, " SQLCODE = %i\n", pSqlca->sqlcode); strcat (sqlInfo, sqlInfoToken); /* get error message */ rc = sqlaintp (errorMsg, 1024, 80, pSqlca); /* return code is the length of the errorMsg string */ if (rc > 0) { sprintf (sqlInfoToken, " %s\n", errorMsg); strcat (sqlInfo, sqlInfoToken); } /* get SQLSTATE message */ rc = sqlogstt (sqlstateMsg, 1024, 80, pSqlca->sqlstate); if (rc == 0) { sprintf (sqlInfoToken, "%s", sqlstateMsg); strcat (sqlInfo, sqlInfoToken); } if (pSqlca->sqlcode < 0) { sprintf (sqlInfoToken, "--- end error report ---\n"); strcat (sqlInfo, sqlInfoToken); printf ("%s", sqlInfo); return 1; } else { sprintf (sqlInfoToken, "-- - end warning report-- - \n "); strcat (sqlInfo, sqlInfoToken); printf ("%s", sqlInfo); return 0; } } return 0; }