Mercurial > hg > monetdb-java
changeset 270:926afbe567f5
Enhanced the reporting of the parameters. It now shows the name for the nullable and mode integer codes.
author | Martin van Dinther <martin.van.dinther@monetdbsolutions.com> |
---|---|
date | Thu, 14 Mar 2019 19:45:45 +0100 (2019-03-14) |
parents | 9c1ecdbbd9aa |
children | 4880267d0fe1 |
files | tests/Test_PSmetadata.java |
diffstat | 1 files changed, 46 insertions(+), 13 deletions(-) [+] |
line wrap: on
line diff
--- a/tests/Test_PSmetadata.java +++ b/tests/Test_PSmetadata.java @@ -58,19 +58,7 @@ public class Test_PSmetadata { System.out.println("\twritable " + rsmd.isWritable(col)); } - pmd = pstmt.getParameterMetaData(); - System.out.println("1. 1 parameter:\t" + pmd.getParameterCount()); - for (int col = 1; col <= pmd.getParameterCount(); col++) { - System.out.println("" + col + "."); - System.out.println("\tnullable " + pmd.isNullable(col)); - System.out.println("\tsigned " + pmd.isSigned(col)); - System.out.println("\tprecision " + pmd.getPrecision(col)); - System.out.println("\tscale " + pmd.getScale(col)); - System.out.println("\ttype " + pmd.getParameterType(col)); - System.out.println("\ttypename " + pmd.getParameterTypeName(col)); - System.out.println("\tclassname " + pmd.getParameterClassName(col)); - System.out.println("\tmode " + pmd.getParameterMode(col)); - } + showParams(pstmt); } catch (SQLException e) { System.out.println("failed :( "+ e.getMessage()); System.out.println("ABORTING TEST!!!"); @@ -79,4 +67,49 @@ public class Test_PSmetadata { con.rollback(); con.close(); } + + // some utility methods for showing table content and params meta data + static void showParams(PreparedStatement stmt) { + try { + ParameterMetaData pmd = stmt.getParameterMetaData(); + System.out.println(pmd.getParameterCount() + " parameters reported:"); + for (int parm = 1; parm <= pmd.getParameterCount(); parm++) { + System.out.print(parm + "."); + int nullable = pmd.isNullable(parm); + System.out.println("\tnullable " + nullable + " (" + paramNullableName(nullable) + ")"); + System.out.println("\tsigned " + pmd.isSigned(parm)); + System.out.println("\tprecision " + pmd.getPrecision(parm)); + System.out.println("\tscale " + pmd.getScale(parm)); + System.out.println("\ttype " + pmd.getParameterType(parm)); + System.out.println("\ttypename " + pmd.getParameterTypeName(parm)); + System.out.println("\tclassname " + pmd.getParameterClassName(parm)); + int mode = pmd.getParameterMode(parm); + System.out.println("\tmode " + mode + " (" + paramModeName(mode) + ")"); + } + } catch (SQLException e) { + System.out.println("showParams failed: " + e.getMessage()); + } + } + + static String paramNullableName(int nullable) { + if (nullable == ParameterMetaData.parameterNoNulls) + return "NO"; + if (nullable == ParameterMetaData.parameterNullable) + return "YA"; + if (nullable == ParameterMetaData.parameterNullableUnknown) + return "UNKNOWN"; + return "INVALID" + nullable; + } + + static String paramModeName(int mode) { + if (mode == ParameterMetaData.parameterModeIn) + return "IN"; + if (mode == ParameterMetaData.parameterModeInOut) + return "INOUT"; + if (mode == ParameterMetaData.parameterModeOut) + return "OUT"; + if (mode == ParameterMetaData.parameterModeUnknown) + return "UNKNOWN"; + return "INVALID" + mode; + } }