The AUTOLOAD part of the code did not change from the first CPAN version of this module 11 years ago as is more or less the same as advised cpan-AutoLoader. Nevertheless, the constant is found. Here are my trace modifications from the XS:
static double
constant(name, arg)
char *name;
int arg;
{
errno = 0;
printf ("constant '%s',%d\n", name, arg);
switch (*name) {
...
if (strEQ(name, "SQL_PARAM_INPUT_OUTPUT"))
#ifdef SQL_PARAM_INPUT_OUTPUT
printf("Now I'm here and return %d\n",SQL_PARAM_INPUT_OUTPUT )
+;
return SQL_PARAM_INPUT_OUTPUT;
#else
goto not_there;
#endif
...
Otherwise this is unmodified code from CPAN (or IBM as You like).
This code should work, it has to be either with my local (missing) configuration, localization or ... well, I have no clue.
And it came to pass that in time the Great God Om spake unto Brutha, the Chosen One: "Psst!"
(Terry Pratchett, Small Gods)