sqlcode 2000 would mean no data found but sqlcode 1 means that one of the warning flags should be set.
Are any of the SQLWARN fields set to "W" after the select?
These have the following meaning:
SQLWARN Eight warning flags, each containing a blank or "W" (those not listed below are reserved): A warning flag will be set if SQLCODE contains a value of +1:
SQLWARN0 A summary of all warning fields. Blank means there are no warnings.
SQLWARN1 "W" indicates that data was truncated on output to a character host variable.
SQLWARN2 "W" indicates that a null value exists, but no indicator variable was provided.
SQLWARN3 "W" indicates that the number of columns is less than the number of host variables or that the number of host variables provided does not match the number of parameter markers in the statement. The lower of the two numbers has been used.
SQLWARN4 "W" indicates a singleton select that returns more than one row (only the first row is returned).