Pages: [1]   Go Down
Print
Author Topic: Comunicazioni  (Read 2871 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
Giuseppe Pappalardo
Moderator
Apprendista Forumista
*****
Offline Offline

Posts: 398


« on: 31-01-2014, 13:24:40 »

Abbiamo svolto insieme un esercitazione che trovate documentata qui:
http://forum.informatica.unict.it/index.php?topic=18346.0

Ci vediamo il 6 per la prova in itinere con gli interessati.

Durante il fine settimana, spero di rendere disponibili su studium versioni aggiornate degli ultimi lucidi.

Buon lavoro a tutti!

« Last Edit: 31-01-2014, 13:27:13 by Giuseppe Pappalardo » Logged
sf692
Matricola
*
Offline Offline

Posts: 75


« Reply #1 on: 31-01-2014, 14:23:20 »

Salve professore, per la prova è prevista una prenotazione? Ed inoltre per chi ha gia superato le prime tre parti rimane da fare soltanto servlet e webservice?
Grazie anticipatamente.
Distinti saluti
Logged
Giuseppe Pappalardo
Moderator
Apprendista Forumista
*****
Offline Offline

Posts: 398


« Reply #2 on: 31-01-2014, 17:14:50 »

Salve professore, per la prova è prevista una prenotazione?
Ed inoltre per chi ha gia superato le prime tre parti rimane da fare soltanto servlet e webservice?
Grazie anticipatamente.
Distinti saluti

Non c'è bisogno di prenotazione, non vi preoccupate.

Sì, le prove rimanenti (per chi ha superato quelle su socket, RPC-RMI e servlet) vertono su servlet/JSP e web services.

Buon lavoro.
« Last Edit: 01-02-2014, 10:46:37 by Giuseppe Pappalardo » Logged
Saro Newland
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 159



WWW
« Reply #3 on: 01-02-2014, 12:01:15 »

Prof. a che ora si svolgerà la prova? Perché lo stesso giorno avrei anche esame di basi di dati e vorrei arrivare a farle entrambe!
Logged
Giuseppe Pappalardo
Moderator
Apprendista Forumista
*****
Offline Offline

Posts: 398


« Reply #4 on: 02-02-2014, 01:45:00 »

Dovreste trovarvi in aula Archimede per le 8.40, anche se in genere passa un po' di tempo (30'-45') prima che si inizi la prova
Logged
sf692
Matricola
*
Offline Offline

Posts: 75


« Reply #5 on: 02-02-2014, 11:26:22 »

Prof. a che ora si svolgerà la prova? Perché lo stesso giorno avrei anche esame di basi di dati e vorrei arrivare a farle entrambe!

condivido il problema del collega, ed ho inoltre constatato che l'esame di database si svolgerà secondo aulario alle 9.30. C'è modo di risolvere il problema? inoltre è prevista solo la data di giorno sei per svolgere la seconda prova in itinere?
Logged
Kea Black
Matricola
*
Offline Offline

Gender: Male
Posts: 84



« Reply #6 on: 02-02-2014, 17:59:48 »

parlando dell'esercitazione, ho cercato di effettuare la lettura del database tramite il driver CsvJdbc, ma con la seguente query
Code:
SELECT COUNT(*),AVG(VOTO) FROM registrazioni;
(dove VOTO è un attributo nel file registrazioni.csv)
mi dava un SQL syntax error che non sono riuscito a risolvere, ho solo potuto constatare che l'errore riguarda la parte "AVG(VOTO)" se la tolgo la query non da errori, se metto solo questa (togliendo "COUNT(*)) mi da lo stesso errore

ho riprovato usando lo StelsCSV in trial, all'inizio mi ha dato problemi perché vedeva VOTO come attributo di tipo testo e non ne poteva dunque fare la media, dopo aver impostato opportunamente un file schema.xml per fargli identificare VOTO come campo intero la query è stata eseguita con successo

ora non so se l'errore che mi dava CsvJdbc fosse imputabile anch'esso al fatto che VOTO era considerato un attributo di tipo testo, ne so se anche per CsvJdbc si può usare il file schema.xml usato con StelsCsv

chi di voi ha provato ha avuto problemi simili? o altri problemi?
Logged
ɹǝǝuıƃuǝsɹǝʌǝɹ
Administrator
God of the Forum
*****
Offline Offline

Gender: Male
Posts: 4.474


Più grande è la lotta, e più è glorioso il trionfo


WWW
« Reply #7 on: 03-02-2014, 04:10:26 »

parlando dell'esercitazione, ho cercato di effettuare la lettura del database tramite il driver CsvJdbc, ma con la seguente query
Code:
SELECT COUNT(*),AVG(VOTO) FROM registrazioni;
(dove VOTO è un attributo nel file registrazioni.csv)
mi dava un SQL syntax error che non sono riuscito a risolvere, ho solo potuto constatare che l'errore riguarda la parte "AVG(VOTO)" se la tolgo la query non da errori, se metto solo questa (togliendo "COUNT(*)) mi da lo stesso errore
Non saprei... ma il primo passo per esporre il problema che a noi viene difficile riprodurre senza passi esatti effettuati è: fornire i passi esatti effettuati o, più facile per te, riportare la intera dicitura (anche se molto lunga!) dell'errore "di sintassi SQL" che ti viene restituito...
Logged

La grande marcia della distruzione mentale proseguirà. Tutto verrà negato. Tutto diventerà un credo. È un atteggiamento ragionevole negare l'esistenza delle pietre sulla strada; sarà un dogma religioso affermarla. È una tesi razionale pensare di vivere tutti in un sogno; sarà un esempio di saggezza mistica affermare che siamo tutti svegli. Accenderemo fuochi per testimoniare che due più due fa quattro. Sguaineremo spade per dimostrare che le foglie sono verdi in estate. Non ci resterà quindi che difendere non solo le incredibili virtù e saggezze della vita umana, ma qualcosa di ancora più incredibile: questo immenso, impossibile universo che ci guarda dritto negli occhi. Combatteremo per i prodigi visibili come se fossero invisibili. Guarderemo l'erba e i cieli impossibili con uno strano coraggio. Saremo tra coloro che hanno visto eppure hanno creduto.

In tutto, amare e servire.

  
                            ن                           
I can deal with ads,
I can deal with buffer,
but when ads buffer
I suffer...

...nutrimi, o Signore, "con il pane delle lacrime; dammi, nelle lacrime, copiosa bevanda...

   YouTube 9GAG    anobii  S  Steam T.B.o.I. Wiki [univ] Lezioni private  ʼ  Albo d'Ateneo Unicode 3.0.1
Usa "Search" prima di aprire un post - Scrivi sempre nella sezione giusta - Non spammare - Rispetta gli altri utenti - E ricorda di seguire il Regolamento
Kea Black
Matricola
*
Offline Offline

Gender: Male
Posts: 84



« Reply #8 on: 03-02-2014, 09:12:47 »

Non saprei... ma il primo passo per esporre il problema che a noi viene difficile riprodurre senza passi esatti effettuati è: fornire i passi esatti effettuati o, più facile per te, riportare la intera dicitura (anche se molto lunga!) dell'errore "di sintassi SQL" che ti viene restituito...

il codice del programma era nelle parti salienti lo stesso visto a lezione (forName per caricare il driver, ecc.), cambia la query e la lettura dei risultati
Code:
try {
                Class.forName ("org.relique.jdbc.csv.CsvDriver");
                Connection conn = DriverManager.getConnection ("jdbc:relique:csv:" + RegistrazioneEsami.PATHNAME);

                Statement stmt = conn.createStatement();
                String query = "SELECT COUNT(*),AVG(VOTO) FROM registrazioni";
                ResultSet results = stmt.executeQuery (query);
                if (results.next() != false) {
                    out.println("<p align=\"center\">La media calcolata su "
                            + results.getString(1)
                            + " registrazioni è: "
                            + results.getString(2) + " </p>");
                }
                else {
                    out.println("<p align=\"center\">La query non ha dato risultati</p>");
                }
            }
            catch (ClassNotFoundException e) {
                out.println ("<p align=\"center\">Errore, la classe del driver CSV non è stata trovata a runtime</p>");
            }
            catch (SQLException e ) {
                out.println ("<p align=\"center\">Errore SQL<br>");
                e.printStackTrace (out);
                out.println ("</p>");
            }
            catch (Exception e) {
                out.println ("<p align=\"center\">Errore generico<br>");
                e.printStackTrace (out);
                out.println ("</p>");
            }
RegistrazioneEsami.PATHNAME è il percorso del database (ed è quello corretto), che al momento è composto solo dal file registrazioni.csv, un semplice file di testo che al momento contiene 3 record (più l'intestazione)
Code:
NOME,COGNOME,MATRICOLA,VOTO
a,a,a,18
b,b,b,30
c,c,c,27
Lo stackTrace dell'errore è il seguente
Quote
java.sql.SQLException: Syntax Error. Encountered " "(" "( "" at line 1, column 20. Was expecting one of: "," ... "AS" ... "FROM" ... ... "*" ... "-" ... "+" ... "/" ... at org.relique.jdbc.csv.CsvStatement.executeQuery(Unknown Source) at tpcd.prove.SimpleExamRegistration.MediaVotiSQL.processRequest(MediaVotiSQL.java:62) at tpcd.prove.SimpleExamRegistration.MediaVotiSQL.doGet(MediaVotiSQL.java:107) at javax.servlet.http.HttpServlet.service(HttpServlet.java:621) at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:744)
« Last Edit: 03-02-2014, 09:14:48 by Kea Black » Logged
ɹǝǝuıƃuǝsɹǝʌǝɹ
Administrator
God of the Forum
*****
Offline Offline

Gender: Male
Posts: 4.474


Più grande è la lotta, e più è glorioso il trionfo


WWW
« Reply #9 on: 03-02-2014, 13:02:27 »

Già, è come se non riconoscesse la parola AVG come nome di funzione intrinseca SQL.

Infatti, per lui sembrerebbe sia un identificatore, tipo come se scrivessi...
SELECT PincoPallino(Voto)

e giustamente ti fa osservare che dopo PincoPallino la parentesi aperta non ci potrebbe stare, ma al limite ci starebbe un " AS" (per dare un nome alla nuova colonna selezionata), oppure "," per una nuova colonna da selezionare, oppure "FROM" per passare alla clausola della sorgente dati (tabelle/view/join).

Prova a usare altri nomi di funzioni aggregate sui dati, oltre alla media... non so prova SUM (che fa la somma della colonna selezionata), vedi se ti dà gli stessi problemi...
Logged

La grande marcia della distruzione mentale proseguirà. Tutto verrà negato. Tutto diventerà un credo. È un atteggiamento ragionevole negare l'esistenza delle pietre sulla strada; sarà un dogma religioso affermarla. È una tesi razionale pensare di vivere tutti in un sogno; sarà un esempio di saggezza mistica affermare che siamo tutti svegli. Accenderemo fuochi per testimoniare che due più due fa quattro. Sguaineremo spade per dimostrare che le foglie sono verdi in estate. Non ci resterà quindi che difendere non solo le incredibili virtù e saggezze della vita umana, ma qualcosa di ancora più incredibile: questo immenso, impossibile universo che ci guarda dritto negli occhi. Combatteremo per i prodigi visibili come se fossero invisibili. Guarderemo l'erba e i cieli impossibili con uno strano coraggio. Saremo tra coloro che hanno visto eppure hanno creduto.

In tutto, amare e servire.

  
                            ن                           
I can deal with ads,
I can deal with buffer,
but when ads buffer
I suffer...

...nutrimi, o Signore, "con il pane delle lacrime; dammi, nelle lacrime, copiosa bevanda...

   YouTube 9GAG    anobii  S  Steam T.B.o.I. Wiki [univ] Lezioni private  ʼ  Albo d'Ateneo Unicode 3.0.1
Usa "Search" prima di aprire un post - Scrivi sempre nella sezione giusta - Non spammare - Rispetta gli altri utenti - E ricorda di seguire il Regolamento
Kea Black
Matricola
*
Offline Offline

Gender: Male
Posts: 84



« Reply #10 on: 03-02-2014, 13:50:07 »

Già, è come se non riconoscesse la parola AVG come nome di funzione intrinseca SQL.

Infatti, per lui sembrerebbe sia un identificatore, tipo come se scrivessi...
SELECT PincoPallino(Voto)

e giustamente ti fa osservare che dopo PincoPallino la parentesi aperta non ci potrebbe stare, ma al limite ci starebbe un " AS" (per dare un nome alla nuova colonna selezionata), oppure "," per una nuova colonna da selezionare, oppure "FROM" per passare alla clausola della sorgente dati (tabelle/view/join).

Prova a usare altri nomi di funzioni aggregate sui dati, oltre alla media... non so prova SUM (che fa la somma della colonna selezionata), vedi se ti dà gli stessi problemi...

ho provato ieri con SUM (pensando al limite di farmi la media da somma/conteggio) ma mi dava lo stesso errore, le altre non saprei

però la documentazione online dice che queste funzioni sono supportate, forse il jar che ci ha passato il prof è una versione precedente a quella disponibile online, dovrei scaricare quella e riprovare
Logged
Saro Newland
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 159



WWW
« Reply #11 on: 05-02-2014, 16:51:10 »

Chi non può sostenere gli ultimi due moduli per l'itinere di domani, può farli giorno 14 febbraio (data d'esame) ?
Logged
Giuseppe Pappalardo
Moderator
Apprendista Forumista
*****
Offline Offline

Posts: 398


« Reply #12 on: 07-02-2014, 00:36:24 »

Certamente sì.
Logged
simoct89
Matricola
*
Offline Offline

Gender: Male
Posts: 13



« Reply #13 on: 07-02-2014, 12:39:27 »

Professore la sua email è pappalardo@dmi.unict.it giusto? Perchè come detto ieri le ho inviato di sera il programma..
Logged
Pages: [1]   Go Up
Print
Jump to: