Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    3

    java.sqlExeption:[Driver ODBC] Violazione attributo del tipo di dati su colonna..

    Salve a tutti, sono nuovo nel forum.
    Ho un problema nel visualizzare i risultati di una query fatta su un database access all'interno di una GUI che ho creato. Purtroppo non sono molto esperto in quanto l'esame che devo sostenere con il mio piano di studi ha ben poco a che vedere (praticamente nulla) e mi sono trovato a dover creare questo programmino senza avere delle buone basi. Comunque sia dopo aver impostato la seguente query
    String query = "SELECT * FROM compone WHERE nome = ' fields.arti.getText() '" ottengo il seguente risultato:
    java.sql.SQLException: [Microsoft][Driver ODBC Microsoft Access]Violazione attributo del tipo di dati su colonna numero 1 (DataPubblicazione)

    Quello che io vorrei è che i risultati venissero visualizzati all'interno di una serie di campi creati all'interno della gui tramite questo metodo di cui invio solo la parte centrale:

    public void display( ResultSet rs )
    {
    try {
    rs.next();

    int recordNumber = rs.getInt( 1 );

    if ( recordNumber != 0 ) {

    fields.anno.setText( rs.getString( 1 ) );
    fields.arti.setText( rs.getString( 2 ) );
    fields.code.setText( rs.getString(3));
    }
    etc etc..
    Come mai ottengo un messaggio del genere? se volete invio interamente la classe da cui ho preso questa parte di metodo e la query..grazie anticipatamente M

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    43
    Ciao se pubblichi la classe è meglio così vediamo dov'è il problema
    by yakino @doc

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    3
    Ciao, purtroppo ho riscontrato un nuovo problema:
    java.sql.SQLException: [Microsoft][Driver Manager ODBC] Stato del cursore non valido.
    at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
    at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
    at sun.jdbc.odbc.JdbcOdbc.SQLGetDataDouble(Unknown Source)
    at sun.jdbc.odbc.JdbcOdbcResultSet.getDataDouble(Unkn own Source)
    at sun.jdbc.odbc.JdbcOdbcResultSet.getLong(Unknown Source)
    at FindRecord.display(FindRecord.java:59)
    at FindRecord.actionPerformed(FindRecord.java:37)
    at javax.swing.AbstractButton.fireActionPerformed(Unk nown Source)
    at javax.swing.AbstractButton$Handler.actionPerformed (Unknown Source)
    at javax.swing.DefaultButtonModel.fireActionPerformed (Unknown Source)
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    at javax.swing.plaf.basic.BasicButtonListener.mouseRe leased(Unknown Source)
    at java.awt.Component.processMouseEvent(Unknown Source)
    at javax.swing.JComponent.processMouseEvent(Unknown Source)
    at java.awt.Component.processEvent(Unknown Source)
    at java.awt.Container.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.LightweightDispatcher.retargetMouseEvent( Unknown Source)
    at java.awt.LightweightDispatcher.processMouseEvent(U nknown Source)
    at java.awt.LightweightDispatcher.dispatchEvent(Unkno wn Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Window.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilter s(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(U nknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarch y(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)


    La classe che ho creato è questa:

    import java.awt.*;
    import java.awt.event.*;
    import java.sql.*;
    import javax.swing.*;

    public class FindRecord implements ActionListener {
    private ScrollingPanel fields;
    private JTextArea output;
    private Connection connection;

    public FindRecord( Connection c, ScrollingPanel f,JTextArea o )
    {
    connection = c;
    fields = f;
    output = o;
    }

    public void actionPerformed( ActionEvent e )
    {
    try {

    if ( !fields.code.getText().equals( "" )){ //& !fields.tito.getText().equals( "" ) ) {

    Statement statement =connection.createStatement();


    String query = "SELECT * FROM Tutti " +
    "WHERE Codice = 'fields.code.getText()'";



    output.append( "\nSending query: " +connection.nativeSQL( query )+ "\n" );


    ResultSet rs = statement.executeQuery( query );

    display( rs );

    output.append( "\nQuery successful\n" );
    statement.close();
    }

    else
    fields.arti.setText("Inserisci Artista E Premi Trova" );
    }

    catch ( SQLException sqlex ) {
    sqlex.printStackTrace();
    output.append( sqlex.toString() );

    }
    }

    // Display results of query. If rs is null
    public void display( ResultSet rs )
    {
    try {
    rs.next();

    int recordNumber = rs.getInt(1);

    if ( recordNumber != 0 ) {

    fields.code.setText( String.valueOf( recordNumber));
    fields.tito.setText( rs.getString( 1 ) );
    fields.arti.setText( rs.getString( 2 ) );
    fields.nazi.setText( rs.getString( 3 ) );
    fields.casa.setText( rs.getString( 4 ) );
    fields.anno.setText( rs.getString(5 ) );
    fields.coll.setText( rs.getString( 6 ) );
    fields.prez.setText( rs.getString( 7 ) );

    }
    else
    output.append( "\nNessun risultato trovato\n" );
    }
    catch ( SQLException sqlex ) {
    sqlex.printStackTrace();
    output.append( sqlex.toString() );
    }
    }
    }
    grazie per l'aiuto ciao

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    43
    String query = "SELECT * FROM Tutti " +
    "WHERE Codice = 'fields.code.getText()'";

    Dovrebbe essere invece
    String query = "SELECT * FROM Tutti WHERE Codice = '"+fields.code.getText()+'";
    by yakino @doc

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    3
    Hai perfettamente ragione..ora sembra funzionare tutto...il problema è che dal linguaggio sql preso dalla query fatta in access e quello fatto in java ci sono delle piccole differenze che non conoscevo (come questa) grazie ancora

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    43
    Di niente
    by yakino @doc

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.