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

    Java e l'SQL

    Buongiorno a tutti quanti,
    oggi vorrei sottopore una domanda relativa all'SQL e java, come da titolo!
    Ho un'applicazione che ogni 30 secondi esegue delle interrogazioni ad un DataBase Sybase, compilando con i dati ottenuti dei fogli XML. fin qui tutto bene e non dà alcun errore.
    Ogni tanto però mi dà che una tabella non viene trovata (me lo scrive su un file di log) ma poi continua e dopo un pò si riprende e continua a crearmi gli XML correttamente!

    Se può servire posto l'errore che mi genera:

    [Sybase][ODBC Driver][Adaptive Server Anywhere]Table or view not found: Correlation name 'Titoli' not found


    Dove può essere l'errore? se vi serve posso postare il codice del programma!

    Grazie anticipatamente per chi potrà rispondermi!

    Aramil

  2. #2
    Nessuno sa dirmi qualcosa? o darmi una mano a capire dove potrebbe essere localizzato l'errore?

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Aramil89
    se vi serve posso postare il codice del programma!

    Nessuno sa dirmi qualcosa?
    Senza vedere nemmeno il codice si dovrebbe chiamare il mago Silvan .... e anche vedendo il codice, potrebbe essere tecnicamente corretto e dipendere da altro che magari succede a runtime.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  4. #4
    il codice posso postartelo, è una semplice stored procedures che interroga una tabella chiamata Titoli per prendere le informazioni al suo interno:

    codice:
    public void creaTitoliXML() throws IOException, JDOMException, TransformerConfigurationException, TransformerException, SQLException{
              String sql="{ call MonXMLTitoli }";
              callStat = cCon.prepareCall(sql);
              cRecordSet=callStat.executeQuery();
              //creo elemento Programmazione
              Element elementoRadice= new Element("Programmazione");
    
              while(cRecordSet.next()){
                  //creo elemento Titolo
                  Element elementoTitolo=new Element("Titolo");
                  elementoTitolo.setAttribute("IdTit",cRecordSet.getString("Id_Titolo"));
                  elementoTitolo.setAttribute("Descr",cRecordSet.getString("Titolo"));
                  elementoTitolo.setAttribute("Locandina",cRecordSet.getString("Locandina"));
                  elementoTitolo.setAttribute("VO",cRecordSet.getString("LOriginale"));
                  elementoTitolo.setAttribute("VM",cRecordSet.getString("VM"));
                  elementoTitolo.setAttribute("TreD",cRecordSet.getString("tred"));
                  elementoTitolo.setAttribute("Dig",cRecordSet.getString("digitale"));
                  elementoTitolo.setAttribute("Durata",cRecordSet.getString("Durata"));
                  elementoTitolo.setAttribute("Trailer",cRecordSet.getString("DescFilmato"));
                  elementoTitolo.setAttribute("Trama",cRecordSet.getString("Trama"));
                  elementoTitolo.setAttribute("Regia",cRecordSet.getString("Regia"));
                  elementoTitolo.setAttribute("Attori",cRecordSet.getString("Attori"));
                  elementoTitolo.setAttribute("Genere",cRecordSet.getString("Genere"));
                  //aggiungo elemento Titoli ad elemento padre Programmazione
                  elementoRadice.addContent(elementoTitolo);
              }
              cRecordSet.close();
              callStat.close();
              Document doc = new Document(elementoRadice);
    
              try {
                  FileOutputStream out = new FileOutputStream("./EasyMonitor/XML/Titoli.xml");
                  XMLOutputter serializer = new XMLOutputter();
                  serializer.output(doc, out);
                  out.flush();
                  out.close();
              }
              catch (IOException e) {
                    String mex=e.getMessage();
                    FileLog fl=new FileLog();
                    fl.scriviLog(mex);
                    Runtime r=Runtime.getRuntime();
                    Process p=r.exec("javaw Starter");
                    return;
              }
    
        }
    ecco qui il codice che mi genera l'XML. Ho anche notato che l'errore me lo presenta soltanto dalle ore 00:00 (e qualche secondo) alle 08:00 (e sempre qualche altro secondo). il mio programma sta attivo 24 su 24 su un server in ufficio, e deve generare costantemente questi xml. l'errore si verifica ogni mattina in quell'intervallo di tempo. ti posto anche la stored:

    codice:
    IF CONVERT(CHAR(5),GETDATE(),108) > '08:00' THEN
            Select DISTINCT Titoli.Id_Titolo,Titolo,Titoli.Durata,Locandina,Loriginale,VM,tred,digitale,Filmati.DescFilmato,Trama,Regia,Attori,Genere 
            from 
                Titoli 
            inner join 
                Filmati 
            On 
                Titoli.Id_Filmato=Filmati.Id_Filmato
            inner join
                Eventi
            on
                Titoli.Id_Titolo=Eventi.Id_Titolo
            Where
                ((DATAEVENTO = CONVERT(CHAR(10),GetDate(),115) AND CONVERT(CHAR(5),ORAEVENTO,108) >= '08:00')
                OR
                (DATAEVENTO=CONVERT(CHAR(10),DATEADD(day,1,getdate()),115) AND CONVERT(CHAR(5),ORAEVENTO,108) < '08:00'))    	
                ORDER BY Titoli.Titolo
        ELSE
            Select DISTINCT Titoli.Id_Titolo,Titolo,Titoli.Durata,Locandina,Loriginale,VM,tred,digitale,Filmati.DescFilmato,Trama,Regia,Attori,Genere 
            from 
                Titoli 
            inner join 
                Filmati 
            On 
                Titoli.Id_Filmato=Filmati.Id_Filmato
            inner join
                Eventi
            on
                Titoli.Id_Titolo=Eventi.Id_Titolo
            Where
                ((DATAEVENTO = CONVERT(CHAR(10),DATEADD(day,-1,getdate()),115) AND CONVERT(CHAR(5),ORAEVENTO,108) >= '08:00')
                OR
                (DATAEVENTO=CONVERT(CHAR(10),DATEADD(day,1,getdate()),115) AND CONVERT(CHAR(5),ORAEVENTO,108) < '08:00'))    	
                ORDER BY Titoli.Titolo
        
        END IF
    magari cosi a occhio ti salta qualcosa che ho trattato male o tralasciato!

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328

    Moderazione

    Una delle prime cose che vanno lette prima di postare è il Regolamento interno del forum in cui si decide di postare.

    Al suo interno, al punto 6, è espressamente richiesto l'uso dei tag CODE per il codice postato e l'indentazione dello stesso... se non li si usano il risultato è quello che già hai visto: un'accozzaglia incomprensibile di codice tutto sfasato e, praticamente, illeggibile.

    Invito l'autore a prendere visione anche del resto del regolamento (il titolo non è dei migliori).

    Correggo il post e il titolo.


    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

  6. #6
    Non mancherò di leggerlo e chiedo scusa per l'inconveniente!

  7. #7
    Ragazzi sono riuscito a risolvere il problema!!! non si trattava di un errore di codice o di un'eccezione mal gestita, semplicemente era stato fatto un'errore sulla stored procedures.
    Grazie comunque!!

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.