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

    [JAVA] Eseguire query dentro DB

    Ciao a tutti, come da titolo, devo mandare in esecuzione una Query che già si trova dentro il Database, qualcuno sa come si fa? e se si può fare?? grazie!!!!

  2. #2
    Quote Originariamente inviata da diabolik03 Visualizza il messaggio
    Ciao a tutti, come da titolo, devo mandare in esecuzione una Query che già si trova dentro il Database, qualcuno sa come si fa? e se si può fare?? grazie!!!!
    ciao!

    che intendi di preciso con query che sta dentro al database?

  3. #3
    Ho un database Access, questo database non l'ho creato io mi è stato dato per accedere ai dati che ci sono dentro.
    Oltre ai vari dati ci sono anche delle maschere e delle query.
    Io ho bisogno di eseguire una di queste query già interne al database da Java.

    Per intenderci non devo fare questo:

    codice:
    String sql = new String("SELECT Tipologia FROM piantaCabine WHERE Cabina=? AND Settore=?");
    			PreparedStatement cmd = con.prepareStatement(sql);
    			cmd.setString(1, numeroCabina);
    			cmd.setString(2, settore);
    			rs = cmd.executeQuery();
    Ma devo fare questo:

    codice:
    String sql = new String("SELECT queryDaEseguire");
    			PreparedStatement cmd = con.prepareStatement(sql);
    			rs = cmd.executeQuery();
    Spero di essere stato più chiaro adesso!!

  4. #4
    ok, non conosco bene access.
    ma se funziona come gli altri db, e ci ho visto bene, magari devi fare una cosa del genere:
    codice:
    CALL queryDaEseguire

  5. #5
    Grazie, purtroppo non funziona mi hai dato uno spunto e ho trovato una classe del JDBC che si chiama CallableStatement e forse è questa che fa al caso mio.

    Ci studio un poco e se riesco vi aggiorno!

    Grazie ancora!!!

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Premetto che non l'ho provato (ho smesso di usare Access nel 99% dei casi), ma usando la libreria UCanAccess (tra l'altro è stata scritta da un Italiano) le query di selezione di Access (non parametriche) vengono mappate automaticamente come delle normali viste, quindi le dovresti poter usare come fossero tabelle.

    Esempio:

    Supponendo di avere dentro ad Access una query di selezione chiamata "Q_Pippo":

    codice:
    PreparedStatement pstmt = null;
    ResultSet rs = null;
    try {
       pstmt = con.prepareStatement("SELECT * FROM Q_Pippo");
       rs = pstmt.executeQuery();
       if (rs != null) {
          while( rs.next() ) {
             ...
          }
       }
    } catch (Exception e) {
       e.printStackTrace();
    } finally {
       if (rs != null) {
          try { rs.close(); } catch (Exception e) { }
       }
       if (pstmt != null) {
          try { pstmt.close(); } catch (Exceptin e) { }
       }
    }

    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
    Allora, diciamo che ho risolto così:

    codice:
    CallableStatement callableStatement =
                        con.prepareCall("{call qryListForSelector}");
    rs = callableStatement.executeQuery();
    Solo che adesso ho un altro problema.

    L'esecuzione della query mi dice:

    net.ucanaccess.jdbc.FeatureNotSupportedException

    Cercando su internet ho visto che UCanAccess non può eseguire query parametriche.

    Ma in questa query non vi sono parametri.

    Vi posto il codice della query:

    codice:
    SELECT *
    FROM [select * from qryRiconfermate
    UNION select * from qryOpenFiltered]. AS Lista
    ORDER BY Lista.Settore DESC , Int([Numero]);
    Mi sapreste dire cosa c'è adesso che non va????
    Grazie sempre!!!

  8. #8
    Ciao Lele prima provavo a eseguire le query come normali tabelle ma mi dava sempre errore, non mi riconosceva il nome della Query

  9. #9
    Quote Originariamente inviata da diabolik03 Visualizza il messaggio
    Cercando su internet ho visto che UCanAccess non può eseguire query parametriche.
    Stai scherzando vero?
    Ho costruito un progetto intero tramite la gestione di UCanAccess e non ho mai avuto problemi su query parametriche!
    Dove hai letto questa notizia?
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

  10. #10
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Stando a quello che dice(va) l'autore di UCanAccess nel 2014

    It cannot execute ms-access parametric queries that could only be mapped into Callable Statements.
    In other words, you have currently to code in java an equivalent procedure (using Prepared Statements).
    The support for Callable Statements, where possile, will be added in the next versions and I think I'll put some more effort for this.

    Quindi:

    UCanAccess maps select queries defined in MS Access into views when they are convertible into (so when they are SELECT queries without parameters).

    UCanAccess mappa le query di selezione memorizzate in Access in viste (usabili, quindi, come fossero normali tabelle) solo quando queste sono query di selezione senza parametri.

    Nel caso di query parametriche (salvate dentro Access) non mi è chiaro se si possano invocare usando le CallableStatements (non ho mai provato e non ho tempo di metter su un DB Access per provare). Di sicuro, dice l'autore, le puoi rimodellare usando le normalissime PreparedStatements di Java (ovvio).


    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

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 © 2024 vBulletin Solutions, Inc. All rights reserved.