Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    java.sql.SQLException

    Ciao a tutti,
    implementando una form di ricerca, la quale genera una query su un DB MS Access, mi imbatto nel seguente errore (visto dalla console):

    ERROR: java.sql.SQLException: [Microsoft][Driver ODBC Microsoft Access] Parametri insufficienti. Previsto 1.

    Mi sono fatto stampare la query che la servlet genera e l'ho eseguita direttamente in access..... e qui funziona, restituendomi i risultati corretti.

    A cosa puo' essere dovuto??

    grazie mille a tutti

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Prova a postare il codice, così vediamo di quali "parametri" parla l'eccezione.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    public class Searchbydate extends HttpServlet{

    /**
    *
    */
    private static final long serialVersionUID = 1L;
    ResultSet rs = null;

    public void init(ServletConfig config) throws ServletException {
    // Always call super.init(config) first (servlet mantra #1)
    super.init(config);

    }


    public void doPost(HttpServletRequest req, HttpServletResponse res)
    throws ServletException, IOException {

    res.setContentType("text/html");

    String data = req.getParameter("data");

    try{

    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    String filename = "C:\\Documents and Settings\\minicgag\\Desktop\\miei scripts\\Database Venditori\\Database_Venditori.mdb";
    //String filename = "D:\\JONAS_4_8_4\\webapps\\autoload\\callc\\regist rochiamate.mdb";
    String database = "jdbcdbcriver={Microsoft Access Driver (*.mdb)};DBQ=";
    database+= filename.trim() + ";DriverID=22;READONLY=true}"; // add on to the end
    // now we can get the connection from the DriverManager
    Connection con = DriverManager.getConnection( database ,"","");
    Statement s = con.createStatement();
    String query = "select * from agenzie where Format([data],\"dd/mm/yy\")='"+data+"'";


    System.out.println(query);
    s.execute(query);
    rs = s.getResultSet();

    if (rs != null) {// if rs == null, then there is no ResultSet to view
    while ( rs.next() ){ // this will step through our data row-by-row


    }
    }

    s.close(); // close the Statement to let the database know we're done with it
    con.close(); // close the Connection to let the database know we're done with it

    req.getRequestDispatcher("searchbydateform.html"). forward(req, res);
    }
    catch(Exception e){System.out.println("ERROR: " + e);}

    //req.getRequestDispatcher("assignSeller.jsp").forwa rd(req, res);

    }

    public void destroy() {

    }

    }

  4. #4
    e' veramente strano, ad esempio inserendo nella form la data di oggi, la servlet produce la query: select * from agenzie where Format([data],"dd/mm/yy")='15/03/07' che lanciata direttamente nel sql editor di ms access funziona!!

    boh...

  5. #5
    HELP ME PLIZ

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Non so se possa essere questo il problema, ma la sintassi completa della funzione Format è la seguente:
    codice:
    Format («espr»; «formato»; «primogiornosett»; «primasett»)
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  7. #7
    ciao.... credo che il formato della query sia giusto in quanto viene eseguita correttamente in access.
    il problema penso che sia dovuto a qualcosa su java. Mi era gia' capitata una cosa simile ma era una scemenza del tipo che avevo messo una try-catch all'interno di una try.

    ...ora però è giusto... non capisco proprio...

  8. #8
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Hai provato ad utilizzare la sintassi che ti ho indicato?
    Il fatto che su Access funzioni è semplicemente dovuto al fatto che alcuni parametri Access li può tralasciare perchè associa in automatico delle costanti di default. Questo, però, non può essere fatto tramite JDBC.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  9. #9
    ...non capisco... nel caso della mia query, come la scriveresti?

  10. #10
    ho risolto il problema
    ora esegue correttamente la query... ma dopo una piccola modifica. ecco il risultato finale:

    select * from agenzie where Format(data,'dd/mm/yy')='15/05/07'

    grazie a tutti

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.