lundi 11 mai 2015

The incoming tabular data stream (TDS) remote procedure call (RPC) protocol stream is incorrect

The incoming tabular data stream (TDS) remote procedure call (RPC) protocol stream is incorrect.Parameter 8 (""): The supplied value is not a valid instance of data type float. Check the source data for invalid values. An example of an invalid value is data of numeric type with scale greater than precision

I keep getting this error

Can anyone please help me with this code? Every time I submit the details of the form in the jsp page i keep getting this exception.

this is the code on the servlet that takes in data from a form on a jsp page. it was working in a previous version and stopped after I changed he

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try{
        MPGBean user2 = new MPGBean();

        String prevMiles = request.getParameter("previousMiles");
        int pM2 = Integer.parseInt(prevMiles);
        System.out.println(pM2);
        user2.setPreviousMiles(pM2);

        String currMiles = request.getParameter("currentMiles");
        int pM3 = Integer.parseInt(prevMiles);
        System.out.println(pM2);
        user2.setCurrentMiles(pM3);

        String noOFLitres = request.getParameter("noOFLitres");
        int pM4 = Integer.parseInt(prevMiles);
        System.out.println(pM2);
        user2.setNoOfLitres(pM4);

        String fT = request.getParameter("fuelPrice");
        System.out.println("023");
        System.out.println(fT);
        double fT2 = Double.parseDouble(fT);
        System.out.println(fT2);
        System.out.println("024");
        user2.setFuelPrice(fT2);
        System.out.println(user2.getFuelPrice());
        System.out.println("022");

        user2.setTotalMiles(user2.getCurrentMiles() - user2.getPreviousMiles());
        System.out.println(user2.getTotalMiles());
        user2.setTotalGallons(user2.getNoOfLitres() / user2.GALLON);
        System.out.println(user2.getTotalGallons());
        System.out.println("02");

        double mps = user2.getTotalMiles() / user2.getTotalGallons();
        String mps2 = String.format("%.2f", mps);
        double mps3 = Double.parseDouble(mps2);
        System.out.println("Decimal"+mps2);

        //mpg.setMPG(mpg.getTotalMiles() / mpg.getTotalGallons());
        user2.setMPG(mps3);
        System.out.println(user2.getMPG());
        user2.setTotalPrice(user2.getFuelPrice() * user2.getNoOfLitres());
        System.out.println(user2.getTotalPrice());
        System.out.println("02");

        double cps = (user2.getTotalPrice() / user2.getTotalMiles());
        String cps2 = String.format("%.2f", cps);
        System.out.println("Decimal"+cps2);
        double cps3 = Double.parseDouble(cps2);

        user2.setCPM(cps3);
        //mpg.setCPM(mpg.getTotalPrice() / mpg.getTotalMiles());
        System.out.println(user2.getCPM());
        System.out.println("02");

        System.out.println("MPG -->" + user2.getMPG() );
        System.out.println("CPM -->" + user2.getCPM());
        System.out.println("02");

        String message = "";
        String url = "";

        if((currMiles.length() == 0 )||
           prevMiles.length() == 0 ||
           noOFLitres.length() == 0)
        {
            message = "Please fill out all te text boxes";
            url = "/loginpage.jsp";
        }
        else if (isDouble(currMiles) == false ||
                isDouble(prevMiles) == false ||
                isDouble(noOFLitres) == false)
        {
            message = "Please use only integers!";
            url = "/userlogged.jsp";
        }
        else
        {
            message = "";
            //ServletContext context = getServletContext();
            //String path = context.getRealPath("");
            user2 = MpgDAO.mpgCalculate(user2);

            //url = "";
        }
        request.setAttribute("user2", user2);
        request.setAttribute("message", message);

        RequestDispatcher dispatcher = request.getRequestDispatcher(url);
        dispatcher.forward(request, response);
    }
    catch (Throwable theException)
      {
          System.out.println(theException);
          System.out.println("08");
      }
      }

this is the code for connecting to the database

public static MPGBean mpgCalculate(MPGBean bean2)
 {
     //preparing some objects for connection
     Statement stmt = null;
     PreparedStatement pstmt = null;
     Connection conn = null;
     System.out.println("a");
    int totalMiles = bean2.getTotalMiles();
    int noOFLitres = bean2.getNoOfLitres();
    double mp = bean2.getMPG();
    double cp = bean2.getCPM();
    double fueltype = bean2.getFuelPrice();
    //int fueltype = 0;
    /*if(bean2.getFuelPrice() == 1.38)
    {
        fueltype = 1;
    }
    else if(bean2.getFuelPrice() == 1.30)
    {
        fueltype = 2;
    }*/


    Calendar cal = Calendar.getInstance();
    cal.add(Calendar.DATE, 1);

     java.util.Date today = new java.util.Date();
     System.out.println(today);
    //System.out.print
    //SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd");

    /*DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
    Date myDate = formatter.parse(date);







     //PreparedStatement pstmt = null;


    /*String insertQuery = "insert into mpg_cpmtable (fuel_id, total_miles, No_OF_Litres, date_OF_Sale)" +
            "values ("+ fueltype+", "+ totalMiles +","+ noOFLitres+","+sqlDate+" );";*/



    // String insertQuery = "insert into mpg_cpmtable (fuel_id, total_miles, No_OF_Litres,MPG,CPM, date_OF_Sale)" +
    //  "values (?, ?, ? , ?, ?, ?);";

     /*String insertQuery ="insert into mpg_cpmtable(fuel_id, total_miles,"
                +"no_of_litres,mpg, cpm ,date_of_sale)"
            +"  values ((select fuel_id from fueltable where fuel_prices = ?)"
            +", ?, ?, ?, ?, ?); SELECT @@IDENTITY ";*/
     String insertQuery ="insert into mpg_cpmtable(fuel_id, total_miles,"
            +"no_of_litres,mpg, cpm ,date_of_sale)"
        +"  values ((select fuel_id from fueltable where fuel_prices = ?)"
        +", ?, ?, ?, ?, ?)";





     //String password= bean.getPassword();
     //int employeeNumber = bean.getEmployeeNumber();
     //String searchName = " ";
     System.out.println("b");
     //String password = bean.getPassword();
     //System.out.println("c");

     //username + "' AND password='" + password + "'";

     try
     {
         //connect to DB
         currentCon = ConnectionManager.getConnection();
         System.out.println("e");


          pstmt = currentCon.prepareStatement(insertQuery);

         //stmt=currentCon.createStatement();
         System.out.println("f");
         //CallableStatement statement = null;
         //statement = currentCon.prepareCall(insertQuery);

         pstmt = currentCon.prepareStatement(insertQuery, Statement.RETURN_GENERATED_KEYS);

         java.util.Date date = new java.util.Date();
         long t = date.getTime();
         System.out.println(t);
         java.sql.Date sqlDate = new java.sql.Date(t);
         java.sql.Time sqlTime = new java.sql.Time(t);
         java.sql.Timestamp sqlTimestamp = new java.sql.Timestamp(t);
         System.out.println("sqlDate=" + sqlDate);
         System.out.println("sqlTime=" + sqlTime);
         System.out.println("sqlTimestamp=" + sqlTimestamp);



        /* statement.setDouble(1, fueltype);
         System.out.println("NNNNN");
         statement.setInt(2, totalMiles);
         statement.setInt(3, noOFLitres);
         statement.setDouble(4, mp);
         statement.setDouble(5, cp);
         statement.setDate(6, sqlDate);
         System.out.println("mmmmmm");
         //statement.registerOutParameter(7, Types.NUMERIC);
         System.out.println("LLLLLLLL");
         //statement.executeUpdate();
         System.out.println("UUUUUU");
         statement.execute();
         //int id = statement.getInt(7);
         System.out.println("777777");
         //System.out.println(id);

         int iUpdCount = statement.getUpdateCount();
         boolean bMoreResults = true;
         int myIdentVal = -1;
         while (bMoreResults || iUpdCount!=-1)
         {

             rs = statement.getResultSet();
             if (rs != null)
             {
                 rs.next();
                 myIdentVal = rs.getInt(1);
             }

         }
         bMoreResults = statement.getMoreResults();
         iUpdCount = statement.getUpdateCount();
         System.out.println("GoON Please");
         //int myIdentVal = rs.getInt(1);
         //int hello = pstmt.getInt(7);
         //pstmt.executeUpdate();
         System.out.println( "@@IDENTITY is: " + myIdentVal);
         System.out.println("Please Please");


         statement.close();*/

         pstmt.setDouble(1, fueltype);
         pstmt.setInt(2, totalMiles);
         pstmt.setInt(3, noOFLitres);
         pstmt.setDouble(4, mp);
         pstmt.setDouble(5, cp);
         System.out.println("YY");
         pstmt.setDate(6, sqlDate);
         System.out.println("XYXX");
         pstmt.executeUpdate();

         int last_inserted_id =0;
         ResultSet rs = pstmt.getGeneratedKeys();
         if(rs.next())
         {
             last_inserted_id = rs.getInt(1);
             System.out.println(last_inserted_id);
         }
         System.out.println(last_inserted_id);
         bean2.setTransactionNo(last_inserted_id);

        /* pstmt.setDouble(1, fueltype);
         pstmt.setInt(2, totalMiles);
         pstmt.setInt(3, noOFLitres);
         pstmt.setDouble(4, mp);
         pstmt.setDouble(5, cp);
         pstmt.setDate(6, sqlDate);
         //pstmt.registerOutParameter(7);
         //int hello = pstmt.getInt(7);
         pstmt.executeUpdate();*/

         //rs = pstmt.getResultSet();
         System.out.println("XXX");

         //int hello = rs.getInt(7);
         //System.out.println(hello);
        // rs = stmt.executeQuery(insertQuery);
         //rs = stmt.executeQuery(insertQuery);
         System.out.println("g");

         //boolean more = rs.next();
         System.out.println("h");

         // if user does not exist set the isValid variable to false
         //if (!more)
         //{
             //System.out.println("Sorry, you are not a registered user! Please sign up first");
            // System.out.println("Sorry, CANNOT FIND DATA");
             //System.out.println("i");

             //bean2.setValid(false);
             //System.out.println("j");
        // }
         //if user exists set the isValid variable to true
        /* else if (more)
         {
            // String usernameqy = rs.getString("employeeType");

             System.out.println("k");


            // System.out.println("Welcome " + usernameqy);
             System.out.println("l");

             System.out.println("m");

             bean2.setValid(true);
             System.out.println("n");
         }*/
    }


     catch (Exception e)
     {
          e.printStackTrace();
          System.out.println("Failed to insert the record." + e);
     }
     if (stmt != null)
    {
        try
        {
         pstmt.close();
         System.out.println("p");
        }
        catch (Exception e) {}
        pstmt = null; }
     if (currentCon != null)
    {
        try { currentCon.close();
                pstmt.close();
        System.out.println("q");
        }
        catch (Exception e)
        { }
        currentCon = null;
    }
     return bean2;

Aucun commentaire:

Enregistrer un commentaire