Examples of ParameterMetaData


Examples of java.sql.ParameterMetaData

    throws DRDAProtocolException, SQLException
  {

    ResultSet rs = null;
    ResultSetMetaData rsmeta = null;
    ParameterMetaData pmeta = null;
    if (!stmt.needsToSendParamData)
      rs = stmt.getResultSet();
    if (rs == null)    // this is a CallableStatement, use parameter meta data
      pmeta = stmt.getParameterMetaData();
    else
      rsmeta = rs.getMetaData();

      int  numCols = (rsmeta != null ? rsmeta.getColumnCount() : pmeta.getParameterCount());
    int numGroups = 1;
    int colStart = 1;
    int colEnd = numCols;
    int blksize = stmt.getBlksize() > 0 ? stmt.getBlksize() : CodePoint.QRYBLKSZ_MAX;
View Full Code Here

Examples of java.sql.ParameterMetaData

   */
  protected int getParamPrecision(int index) throws SQLException
  {
    if (ps != null && ps instanceof CallableStatement)
    {
      ParameterMetaData pmeta = getParameterMetaData();

      return Math.min(pmeta.getPrecision(index),
              FdocaConstants.NUMERIC_MAX_PRECISION);

    }
    else
      return -1;
View Full Code Here

Examples of java.sql.ParameterMetaData

   */
  protected int getParamScale(int index) throws SQLException
  {
    if (ps != null && ps instanceof CallableStatement)
    {
      ParameterMetaData pmeta = getParameterMetaData();
      return Math.min(pmeta.getScale(index),FdocaConstants.NUMERIC_MAX_PRECISION);
    }
    else
      return -1;
  }
View Full Code Here

Examples of java.sql.ParameterMetaData

        
  }

  private void setupCallableStatementParams(CallableStatement cs) throws SQLException
  {
    ParameterMetaData pmeta = getParameterMetaData();
    int numElems = pmeta.getParameterCount();

    for ( int i = 0; i < numElems; i ++)
    {
      boolean outputFlag = false;
     
      int parameterMode = pmeta.getParameterMode(i + 1);
      int parameterType = pmeta.getParameterType(i + 1);
                        int parameterPrecision = pmeta.getPrecision(i + 1);
                        int parameterScale = pmeta.getScale(i + 1);

      switch (parameterMode) {
        case JDBC30Translation.PARAMETER_MODE_IN:
          break;
        case JDBC30Translation.PARAMETER_MODE_OUT:
        case JDBC30Translation.PARAMETER_MODE_IN_OUT:
          outputFlag = true;
          break;
        case JDBC30Translation.PARAMETER_MODE_UNKNOWN:
          // It's only unknown if array
          String objectType = pmeta.getParameterClassName(i+1);
          parameterType =
            getOutputParameterTypeFromClassName(objectType);
          if (parameterType  != NOT_OUTPUT_PARAM)
            outputFlag = true;
      }
View Full Code Here

Examples of java.sql.ParameterMetaData

        try {

            String sqlString = sql.toString();
            UtilityLogger.log(sqlString);
            PreparedStatement st = c.prepareStatement(sqlString);
            ParameterMetaData parameters = null;
            try {
                for (int i = 0; i < values.length; i++) {

                    if (values[i] == null) {

                        // check for the right NULL type
                        if (parameters == null) {
                            parameters = st.getParameterMetaData();
                        }

                        st.setNull(i + 1, parameters.getParameterType(i + 1));
                    }
                    else {
                        st.setObject(i + 1, values[i]);
                    }
                }
View Full Code Here

Examples of java.sql.ParameterMetaData

         int expectedPrecision,
         int expectedScale
         ) throws Exception
    {
        PreparedStatement ps = conn.prepareStatement( query );
        ParameterMetaData pmd = ps.getParameterMetaData();

        assertEquals( pmd.getParameterClassName( 1 ), expectedClassName );
        assertEquals( pmd.getParameterType( 1 ), expectedJDBCType );
        assertEquals( pmd.getParameterTypeName( 1 ), expectedSQLTypeName );
        assertEquals( pmd.getPrecision( 1 ), expectedPrecision );
        assertEquals( pmd.getScale( 1 ), expectedScale );

        ps.close();
    }
View Full Code Here

Examples of java.sql.ParameterMetaData

        assertEquals(expectedValues[5], s.getMaxRows());
        assertEquals(expectedValues[6], s.getResultSetHoldability());

        if (s instanceof PreparedStatement) {
            PreparedStatement ps = (PreparedStatement) s;
            ParameterMetaData psmd = ps.getParameterMetaData();
            // Parameter count:
            assertEquals(parameterExpectedValues[0], psmd.getParameterCount());
            for (int i = 1; i <= psmd.getParameterCount(); i++) {
                assertEquals(parameterExpectedValues[i], psmd.getParameterType(i));
            }
        }
    }
View Full Code Here

Examples of java.sql.ParameterMetaData

    }

    private void sendParameterDescription(Prepared p) throws IOException {
        try {
            PreparedStatement prep = p.prep;
            ParameterMetaData meta = prep.getParameterMetaData();
            int count = meta.getParameterCount();
            startMessage('t');
            writeShort(count);
            for (int i = 0; i < count; i++) {
                int type;
                if (p.paramType != null && p.paramType[i] != 0) {
View Full Code Here

Examples of java.sql.ParameterMetaData

  }

  private void checkParameter(PreparedStatement prep, int index,
      String className, int type, String typeName, int precision, int scale)
      throws SQLException {
    ParameterMetaData meta = prep.getParameterMetaData();
    assertEquals(className, meta.getParameterClassName(index));
    assertEquals(type, meta.getParameterType(index));
    assertEquals(typeName, meta.getParameterTypeName(index));
    assertEquals(precision, meta.getPrecision(index));
    assertEquals(scale, meta.getScale(index));
  }
View Full Code Here

Examples of java.sql.ParameterMetaData

  private void parseSQLDTA_work(DRDAStatement stmt) throws DRDAProtocolException,SQLException
  {
    String strVal;
    PreparedStatement ps = stmt.getPreparedStatement();
    int codePoint;
    ParameterMetaData pmeta = null;

    // Clear params without releasing storage
    stmt.clearDrdaParams();

    int numVars = 0;
    boolean rtnParam = false;

    reader.markCollection();   
    codePoint = reader.getCodePoint();
    while (codePoint != -1)
    {
        switch (codePoint)
        {
          // required
          case CodePoint.FDODSC:
            while (reader.getDdmLength() > 6) //we get parameter info til last 6 byte
          {
            int dtaGrpLen = reader.readUnsignedByte();
            int numVarsInGrp = (dtaGrpLen - 3) / 3;
            if (SanityManager.DEBUG)
              trace("num of vars in this group is: "+numVarsInGrp);
            reader.readByte();    // tripletType
            reader.readByte();    // id
            for (int j = 0; j < numVarsInGrp; j++)
            {
              final byte t = reader.readByte();
              if (SanityManager.DEBUG)
                trace("drdaType is: "+ "0x" +
                         Integer.toHexString(t));
              int drdaLength = reader.readNetworkShort();
              if (SanityManager.DEBUG)
                trace("drdaLength is: "+drdaLength);
              stmt.addDrdaParam(t, drdaLength);
            }
          }
          numVars = stmt.getDrdaParamCount();
          if (SanityManager.DEBUG)
            trace("numVars = " + numVars);
          if (ps == null)    // it is a CallableStatement under construction
          {
            String marks = "(?"// construct parameter marks
            for (int i = 1; i < numVars; i++)
              marks += ", ?";
            String prepareString = "call " + stmt.procName + marks + ")";
            if (SanityManager.DEBUG)
              trace ("$$ prepareCall is: "+prepareString);
            CallableStatement cs = null;
            try {
              cs = (CallableStatement)
                stmt.prepare(prepareString);     
              stmt.registerAllOutParams();
            } catch (SQLException se) {
              if (! stmt.outputExpected ||
                (!se.getSQLState().equals(SQLState.LANG_NO_METHOD_FOUND)))
                throw se;
              if (SanityManager.DEBUG)
                trace("****** second try with return parameter...");
              // Save first SQLException most likely suspect
              if (numVars == 1)
                prepareString = "? = call " + stmt.procName +"()";
              else
                prepareString = "? = call " + stmt.procName +"("+marks.substring(3) + ")";
              if (SanityManager.DEBUG)
                trace ("$$ prepareCall is: "+prepareString);
              try {
                cs = (CallableStatement) stmt.prepare(prepareString);
              } catch (SQLException se2)
              {
                // The first exception is the most likely suspect
                throw se;
              }
              rtnParam = true;
            }
            ps = cs;
            stmt.ps = ps;
          }

          pmeta = stmt.getParameterMetaData();

          reader.readBytes(6)// descriptor footer
          break;
        // optional
        case CodePoint.FDODTA:
          reader.readByte()// row indicator
          for (int i = 0; i < numVars; i++)
          {
         
            if ((stmt.getParamDRDAType(i+1) & 0x1) == 0x1// nullable
            {
              int nullData = reader.readUnsignedByte();
              if ((nullData & 0xFF) == FdocaConstants.NULL_DATA)
              {
                if (SanityManager.DEBUG)
                  trace("******param null");
                if (pmeta.getParameterMode(i + 1)
                  != JDBC30Translation.PARAMETER_MODE_OUT )
                    ps.setNull(i+1, pmeta.getParameterType(i+1));
                if (stmt.isOutputParam(i+1))
                  stmt.registerOutParam(i+1);
                continue;
              }
            }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.