Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Problema con result set e metodo getString()

    Salve. Sto lavorando con database Oracle lite 10 g, e non riesco a spiegarmi questa cosa, cioè che quando, dopo aver fatto una query che sembrerebbe non aver dato eccezione ne ricevo una su questa istruzione:

    rs.getString(" Nome della colonna ") dove rs è il ResultSet

    L'eccezione che ricevo è la seguente:

    [POL-5124] conversione cast tra tipi di dati incompatibili UNKNOWN e VARCHAR

    A cosa può essere dovuta? Nel db è memorizzata un attributo varchar(15) not null.
    E' mai capitato a qualcuno?
    Grazie anticipatamente

  2. #2
    Utente di HTML.it L'avatar di Ed_Bunker
    Registrato dal
    Jul 2003
    Messaggi
    1,119
    Il risultato della getString lo metti in una variabile di tipo String ?
    Hai provato a fare un casting esplicito ?

  3. #3
    Bè, si che lo metto in una String. Ho provato con il cast esplicito ma nulla. La cosa strana è che ho provato a fare un piccolo main che facesse la query esplicita con uno statement (mentre io uso un preparedstatement) e tutto è andato per il meglio.


    private static final String FIND_BY_USR_PWD = "SELECT * FROM PROFESSORE WHERE USERNAME = ? AND PASSWORD = ? ";

    public static void load(Professore prof) throws SQLException, ClassNotFoundException
    {
    Connection con = null;
    PreparedStatement pstmt = null;
    ResultSet rs = null;
    try
    {
    System.out.println("CIAO");
    con = ConnectionManager.getConnection();
    pstmt = con.prepareStatement(FIND_BY_USR_PWD);
    pstmt.setString(1, prof.getUsername());
    pstmt.setString(2, prof.getPassword());

    rs = pstmt.executeQuery();

    if(rs.next()) { ...}

    Questo è il codice che eseguo, l'oggetto prof passato contiene usr e pw e anche se gli attributi username e password che prendo dalla form della verifica del Login sono effettivamente nel db, la rs.next() mi restituisce false. In particolare facendo delle stampe mi dà che l'attributo password di prof è nullo, ma in realtà io lo setto con l'istruzione pstmt.setString(2, prof.getPassword());

    Non riesco francamente a capire. Sono molto demoralizzato

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    56
    Intanto prova ad utilizzare i nomi delle colonne nello statement SQL, anziché l'asterisco, e assegna degli alias, per vedere se magari ti riferisci a colonne che non esistono.
    Esempio:
    codice:
    private static final String FIND_BY_USR_PWD = "SELECT COGNOME AS campoCognome FROM PROFESSORE WHERE USERNAME = ? AND PASSWORD = ? ";
    ...
    String cognome = rs.getString("campoCognome");

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.