Pannello di Controllo Moderatore ]

Ricerca 'Right Outer Join' che AOO non esegue

Discussioni sulle caratteristiche di database

Ricerca 'Right Outer Join' che AOO non esegue

Messaggioda markinson » mercoledì 29 luglio 2020, 20:09

Salve a tutti!

Poche e brevi righe, perché sono stravolto dopo una giornata di lavoro e di combattimento sul campo di battaglia del mio dbase realizzato e mantenuto con Apache OpenOffice versione 4.1.7.
Per cercare aiuto, ho preso la base di dati originale e ho tentato di ripulirla di tutte le informazioni sia sensibili sia di quelle non utili ai fini della presente richiesta di aiuto.
Il db è allegato in un successivo post, causa limiti di upload per ogni singolo intervento.

Il mio obiettivo è quello di avere i dati di tutti i fascicoli aperti, insieme, laddove vi siano state delle operazioni, con i vari e relativi stati del procedimento.
La particolarità che ho aggiunto sta nel fatto che non mi occorrono tutti gli stati del procedimento, ma soltanto quelli flaggati come "validi", intendendo per "validi" quegli stati del procedimento che sono attualmente correnti, in essere.

Ho preparato, in modalità guidata, una query (altrimenti non vi sarei riuscito), il cui codice SQL è il seguente:
Codice: Seleziona tutto   Espandi visualeStringi visuale
SELECT "tbl_FascicoloPrincipale"."ComuniFascicolo", "tbl_FascicoloPrincipale"."ID", "tbl_StatoProcedimento"."ID", "tbl_StatoProcedimento"."DataProcedimento", "tbl_StatoProcedimento"."StatoProcedimento", "tbl_StatoProcedimento"."NoteProcedimento", "tbl_StatoProcedimento"."Valido" FROM { OJ "tbl_StatoProcedimento" RIGHT OUTER JOIN "tbl_FascicoloPrincipale" ON "tbl_StatoProcedimento"."FascicoloPrincipale" = "tbl_FascicoloPrincipale"."ID" } ORDER BY "tbl_FascicoloPrincipale"."ComuniFascicolo" ASC


Ossia, come mi hanno già insegnato charlie e Zago_87 in altre occasioni, con una relazione destra (RIGHT OUTER JOIN).
Quando mando in esecuzione la query "Qry_Fascicoli_StatoProcedimento" l'esito è il seguente:
QRY_000-1.jpg

Quindi clicco sul pulsante per andare all'ultimo record e ottengo:
QRY_001-1.jpg

Ossia il campo del primo record diventa bianco e l'indicatore del numero dei record resta ancora a "74*".

Infine, se provo a scorrere i record con la rotellina del mouse il risultato è quello che vedete qui sotto:
QRY_002.jpg


In LibreOffice, invece, funziona tutto.
Capito, allora utilizzare LO e non farsi troppi problemi.
Il problema, scusate la ripetizione, è che adesso sono vincolato ad AOO. Almeno per il momento.

Di grazia, qualcuno può verificare se il fenomeno si ripete con il proprio AOO e, magari, aiutarmi a capire dove sto sbagliando?
Anche perché pure oggi AOO è andato di nuovo in tilt come più o meno ho descritto nel post "Formulario: errore 'SfxBaseModel::loadFromStorage'", che - se avrò forza - tenterò di aggiornare.

Grazie di cuore per l'attenzione!
Ultima modifica di markinson il mercoledì 29 luglio 2020, 20:11, modificato 1 volta in totale.
OpenOffice 4.1.7 / LibreOffice 6 still - Windows 10 Pro x64
"Facesti come quei che va di notte, che porta il lume dietro e sé non giova, ma dopo sé fa le persone dotte"
Dante (Purgatorio, Canto XXII)
Avatar utente
markinson
 
Messaggi: 87
Iscritto il: mercoledì 24 giugno 2020, 15:18

Re: [RISOLTO] Ricerca 'Right Outer Join' che AOO non esegue

Messaggioda markinson » mercoledì 29 luglio 2020, 20:10

Il dbase è quello allegato al presente intervento.
Grazie!
Allegati
Istruttoria_001.odb
(26.63 KiB) Scaricato 13 volte
OpenOffice 4.1.7 / LibreOffice 6 still - Windows 10 Pro x64
"Facesti come quei che va di notte, che porta il lume dietro e sé non giova, ma dopo sé fa le persone dotte"
Dante (Purgatorio, Canto XXII)
Avatar utente
markinson
 
Messaggi: 87
Iscritto il: mercoledì 24 giugno 2020, 15:18

Re: Ricerca 'Right Outer Join' che AOO non esegue

Messaggioda Zago_87 » mercoledì 29 luglio 2020, 21:43

Mi spiace ma non ho AOO installato e se possibile eviterei di reinstallarlo, io ti consiglio di passare a LO visti anche i precedenti, come mai dici che ora non puoi farlo?
Curiosità :mrgreen:
LibreOffice 6.3.6
Windows 7 PRO
Avatar utente
Zago_87
 
Messaggi: 109
Iscritto il: giovedì 15 gennaio 2015, 0:53

Re: Ricerca 'Right Outer Join' che AOO non esegue

Messaggioda markinson » mercoledì 29 luglio 2020, 22:32

:D
Per due ordini di motivi:
  • dove lavoro ho strappato la concessione di installare AOO nelle postazioni che dovrebbero usare il dbase in principio da me architettato (così ero sicuro che l'ambiente fosse stato e rimasto sempre lo stesso rispetto a quello di sviluppo che ho a casa);
  • dovrei rivedere tutte i campi che attingono i valori dal menù a tendina, come discusso qui, in particolare per sanare le differenze tra AOO e LO qui descritte.

Il problema di fondo, oltre alla mia impreparazione, è che ho urgenza a provvedere; tuttavia ritrovarmi con un ambiente fragile (non voglio offendere nessuno, men che mai gli sviluppatori/amanti di AOO!!!) mi sta facendo molto riflettere.

Per dire: anche oggi, mentre stavo lavorando, il dbase all'improvviso ha rallentato in modo drastico, quindi ha restituito l'errore che ho riportato qui e addio alla base di dati.

:roll:
OpenOffice 4.1.7 / LibreOffice 6 still - Windows 10 Pro x64
"Facesti come quei che va di notte, che porta il lume dietro e sé non giova, ma dopo sé fa le persone dotte"
Dante (Purgatorio, Canto XXII)
Avatar utente
markinson
 
Messaggi: 87
Iscritto il: mercoledì 24 giugno 2020, 15:18

Re: Ricerca 'Right Outer Join' che AOO non esegue

Messaggioda charlie » giovedì 30 luglio 2020, 7:36

Ho aperto il database in OO.
Ho riscontrato solo il problema allo scorrimento della finestra della query (nuovo record).
Un paio di considerazioni:
  • Una volta fatta la query prova ad agire su un formulario fatto su di essa anziché direttamente
  • Quando uso Base uso LO perché OO ai primi 'incontri' mi dava problemi di crash. Vista l'importanza del lavoro che stai facendo, ti consiglio di seguire la stessa strada.Ti costerà a convincere qualcuno sull'ambiente di lavoro ma risparmierai ulteriori grattacapi.
    Gli altri problemi per appianare differenze fra OO e LO si risolvono.
charlie
macOS 10.12 Sierra: Open Office 4.1.7 - LibreOffice 6.2.8.2
http://www.charlieopenoffice.altervista.org
Avatar utente
charlie
Site Admin
Site Admin
 
Messaggi: 6937
Iscritto il: mercoledì 19 dicembre 2012, 11:50

Re: Ricerca 'Right Outer Join' che AOO non esegue

Messaggioda markinson » giovedì 30 luglio 2020, 8:46

Grazie ancora una volta per la risposta, le verifiche e i suggerimenti. ;)

Perdonami, ma - per la curiosità di capire - hai scritto:
charlie ha scritto:Ho aperto il database in OO.
Ho riscontrato solo il problema allo scorrimento della finestra della query (nuovo record).


Fai riferimento alla circostanza in cui "il campo del primo record diventa bianco e l'indicatore del numero dei record resta ancora a '74*'" (seconda screenshot) oppure al secondo fenomeno dove tutta la finestra diventa bianca e il contatore dei record assume il valore "-1" (terza screenshot)?

Alcuni ulteriori punti (approfitto!).

charlie ha scritto:Una volta fatta la query prova ad agire su un formulario fatto su di essa anziché direttamente

Ho creato una nuova maschera e "sotto" ho messo la query che non funziona (mi siano passate le espressioni imprecise). Si ripresenta il discorso della visualizzazione dei soli primi 40 record, ma cliccando sulla freccia per andare all'ultimo record, stavolta va sino in fondo. Tuttavia l'ultimo record visualizzato ripropone parzialmente i dati del primo. Faccio prima con una screenshot.
QRY_003.jpg


Allora ho ricreato da zero la ricerca, stando attendo persino alla sequenza dei campi come da proporre e, sorpresa, l'interrogazione funziona!
Se torno sulla ricerca che dà problemi, l'inconveniente si ripresenta.
Quando ieri ho rifatto da zero la query, sulla base di dati completa, l'errore si ripresentava in continuazione. :knock:

Quindi mi sono buttato sul codice SQL ed ecco gli esiti.

Codice SQL della ricerca che dà problemi.
Codice: Seleziona tutto   Espandi visualeStringi visuale
SELECT "tbl_FascicoloPrincipale"."ComuniFascicolo", "tbl_FascicoloPrincipale"."ID", "tbl_StatoProcedimento"."ID", "tbl_StatoProcedimento"."DataProcedimento", "tbl_StatoProcedimento"."StatoProcedimento", "tbl_StatoProcedimento"."NoteProcedimento", "tbl_StatoProcedimento"."Valido" FROM { OJ "tbl_StatoProcedimento" RIGHT OUTER JOIN "tbl_FascicoloPrincipale" ON "tbl_StatoProcedimento"."FascicoloPrincipale" = "tbl_FascicoloPrincipale"."ID" } ORDER BY "tbl_FascicoloPrincipale"."ComuniFascicolo" ASC


Codice SQL della ricerca rifatta, identica alla precedente, ma che non restituisce errori di sorta.
Codice: Seleziona tutto   Espandi visualeStringi visuale
SELECT "tbl_FascicoloPrincipale"."ComuniFascicolo", "tbl_FascicoloPrincipale"."ID", "tbl_StatoProcedimento"."ID", "tbl_StatoProcedimento"."DataProcedimento", "tbl_StatoProcedimento"."StatoProcedimento", "tbl_StatoProcedimento"."NoteProcedimento", "tbl_StatoProcedimento"."Valido" FROM { OJ "tbl_StatoProcedimento" RIGHT OUTER JOIN "tbl_FascicoloPrincipale" ON "tbl_StatoProcedimento"."FascicoloPrincipale" = "tbl_FascicoloPrincipale"."ID" } ORDER BY "tbl_FascicoloPrincipale"."ComuniFascicolo" ASC


Allego di nuovo il dbase con le ulteriori interrogazioni realizzate.

charlie ha scritto:Gli altri problemi per appianare differenze fra OO e LO si risolvono.

Con tutta e forte probabilità seguirò la strada da te indicata, mantenendo la curiosità di vedere se quanto sviluppato con LO gira anche in ambiente AOO.

GRAZIE!
Allegati
Istruttoria_002_FORM su QRY.odb
(39.02 KiB) Scaricato 12 volte
OpenOffice 4.1.7 / LibreOffice 6 still - Windows 10 Pro x64
"Facesti come quei che va di notte, che porta il lume dietro e sé non giova, ma dopo sé fa le persone dotte"
Dante (Purgatorio, Canto XXII)
Avatar utente
markinson
 
Messaggi: 87
Iscritto il: mercoledì 24 giugno 2020, 15:18

Re: Ricerca 'Right Outer Join' che AOO non esegue

Messaggioda charlie » giovedì 30 luglio 2020, 10:41

Probabilmente la query va in "confusione" perché si va a scrivere un nuovo record in ciascuna delle 2 tabelle.
Se si deve immettere un nuovo dato secondo me è opportuno:
  • Usare un formulario di immissione per ogni tabella "secondaria" ed agire prima su quelle.
  • Usare un formulario di immissione per la tabella principale attingendo da quelle secondarie i dati già inseriti in precedenza
  • Usare le query attraverso dei formulari di visualizzazione inibendo la modifica dei record.
Con queste piccole regole dovrebbe funzionare tutto anche in OO.

P.S. ti prego di essere meno prolisso, non serve a niente allegare 2 volte lo stesso codice dicendo che da una parte funziona e dall'altra no. Grazie.
charlie
macOS 10.12 Sierra: Open Office 4.1.7 - LibreOffice 6.2.8.2
http://www.charlieopenoffice.altervista.org
Avatar utente
charlie
Site Admin
Site Admin
 
Messaggi: 6937
Iscritto il: mercoledì 19 dicembre 2012, 11:50

Re: Ricerca 'Right Outer Join' che AOO non esegue

Messaggioda Zago_87 » giovedì 30 luglio 2020, 11:36

Premesso che condivido (e come non potrei?) quel che dice Charlie, non capisco bene la sintassi della tua query.
Dico subito che ho sempre preferito scrivere a mano le query perché non mi piace come le scrive in automatico AOO o LO passando dal gestore grafico, a volte mi creava proprio problema perché il risultato non era quello che speravo, magari era mia inesperienza, ma ho sempre evitato quel metodo e mi sono sempre trovato bene, anzi, anche se con un po' di fatica per iniziare ora credo di cavarmela meglio di quanto avrei fatto continuando con il metodo grafico (mia opinione).

Detto questo e avendo spulciato un po' in rete ho trovato che la sintassi usata nel tuo DB è quella di "escape", non ho ben capito cosa voglia dire ma non è una istruzione nativa per Oracle e non è interoperativa, riporto sempre quanto trovato in rete. La sintassi nativa della tua query dovrebbe essere invece, credo:
Codice: Seleziona tutto   Espandi visualeStringi visuale
SELECT "tbl_FascicoloPrincipale"."ComuniFascicolo", "tbl_FascicoloPrincipale"."ID", "tbl_StatoProcedimento"."ID", "tbl_StatoProcedimento"."DataProcedimento", "tbl_StatoProcedimento"."StatoProcedimento", "tbl_StatoProcedimento"."NoteProcedimento", "tbl_StatoProcedimento"."Valido"
FROM "tbl_StatoProcedimento" JOIN "tbl_FascicoloPrincipale" ON "tbl_StatoProcedimento"."FascicoloPrincipale" = "tbl_FascicoloPrincipale"."ID"
ORDER BY "tbl_FascicoloPrincipale"."ComuniFascicolo" ASC

So di essermi avventurato in un terreno a me ignoto, ma da quel poco che ho intuito (capito è un parolone) AOO ti ha tradotto dalla grafica al codice usando una sintassi che potrebbe generare problemi in quanto non nativa e non funzionante su tutti i prodotti che sfruttano quel motore.

Con il dubbio enorme di aver preso fischi per fischi, di aver sbagliato il codice non avendo potuto provarlo, spero di aver centrato il problema.
Quelle graffe e quel OJ proprio mi puzzano :mrgreen:
Fammi sapere se ho scritto bene la query e soprattutto se risolve il problema ;)
LibreOffice 6.3.6
Windows 7 PRO
Avatar utente
Zago_87
 
Messaggi: 109
Iscritto il: giovedì 15 gennaio 2015, 0:53

Re: Ricerca 'Right Outer Join' che AOO non esegue

Messaggioda markinson » giovedì 30 luglio 2020, 12:10

Grazie a entrambi per gli interventi e i contenuti espressi, di cui prendo atto.

Zago_87 ho passato il tuo codice alla query e questa viene eseguita, soltanto che sono restituiti 95 record anziché i dovuti 100.
Al momento purtroppo non posso verificare quali siano stati tagliati fuori.

Lanciando di nuovo la ricerca che provocava gli inconvenienti segnalati, stamattina e stavolta tutto è andato a buon fine, senza che io abbia modificato nulla.
OpenOffice 4.1.7 / LibreOffice 6 still - Windows 10 Pro x64
"Facesti come quei che va di notte, che porta il lume dietro e sé non giova, ma dopo sé fa le persone dotte"
Dante (Purgatorio, Canto XXII)
Avatar utente
markinson
 
Messaggi: 87
Iscritto il: mercoledì 24 giugno 2020, 15:18

Re: Ricerca 'Right Outer Join' che AOO non esegue

Messaggioda charlie » giovedì 30 luglio 2020, 12:22

@Zago_87 la tua sintassi è relativa ad una relazione interna (quella normale) fra le tabelle, infatti seleziona meno record. Gli oj e le graffe sono appunto le relazione destra che serve in questo caso a @markinson.
charlie
macOS 10.12 Sierra: Open Office 4.1.7 - LibreOffice 6.2.8.2
http://www.charlieopenoffice.altervista.org
Avatar utente
charlie
Site Admin
Site Admin
 
Messaggi: 6937
Iscritto il: mercoledì 19 dicembre 2012, 11:50

Re: Ricerca 'Right Outer Join' che AOO non esegue

Messaggioda Zago_87 » giovedì 30 luglio 2020, 12:30

Mi sono mangiato il RIGHT nel modificarla, quello che intendevo era che le graffe e l'OJ potevano, da quanto letto altrove, dare origine ad errori su alcuni motori o alcuni applicativi.

Aggiungendo semplicemente il RIGHT prima di JOIN al codice che ho postato dovrebbe restituire il risultato corretto.
Scusate per il banale errore nel modificare la sintassi.
LibreOffice 6.3.6
Windows 7 PRO
Avatar utente
Zago_87
 
Messaggi: 109
Iscritto il: giovedì 15 gennaio 2015, 0:53

Re: Ricerca 'Right Outer Join' che AOO non esegue

Messaggioda charlie » giovedì 30 luglio 2020, 14:56

Hai colto nel segno, la query funziona bene in OO. :super:
Attenzione però a non aprirla in modo 'modifica' grafico perché OO, ma anche LO, aggiungono automaticamente oj e graffe ed un eventuale salvataggio vanifica la fatica.
charlie
macOS 10.12 Sierra: Open Office 4.1.7 - LibreOffice 6.2.8.2
http://www.charlieopenoffice.altervista.org
Avatar utente
charlie
Site Admin
Site Admin
 
Messaggi: 6937
Iscritto il: mercoledì 19 dicembre 2012, 11:50

Re: Ricerca 'Right Outer Join' che AOO non esegue

Messaggioda Zago_87 » giovedì 30 luglio 2020, 15:33

Benissimo, vuol dire che qualcosa ci ho capito davvero :mrgreen:

Spero Markinson confermi il tutto anche per il DB reale a questo punto.

Fatto tesoro di questo credo che sia importante per te ricontrollare la sintassi di tutti i codici SQL che utilizzi, a partire dalle query, perché a questo punto le varie anomalie che segnali nei tuoi post potrebbero essere tutte frutto di codice non ben interpretato. Almeno io lo spero per te.
In fondo, come detto anche da Charlie in altro post, si tratta di apprendere l'utilizzo di pochi concetti per poter scrivere in autonomia l'SQL basilare che risolve la maggior parte delle esigenze.

Il mio consiglio non richiesto è quindi, passa a LO il prima possibile perché più aspetti e peggio diventa l'adattamento, e ricontrolla il codice SQL cercando di scriverlo tu nella maniera più semplice possibile.
LibreOffice 6.3.6
Windows 7 PRO
Avatar utente
Zago_87
 
Messaggi: 109
Iscritto il: giovedì 15 gennaio 2015, 0:53

Re: Ricerca 'Right Outer Join' che AOO non esegue

Messaggioda markinson » venerdì 31 luglio 2020, 8:29

Zago_87 ha scritto:Aggiungendo semplicemente il RIGHT prima di JOIN al codice che ho postato dovrebbe restituire il risultato corretto.

Confermo: il risultato viene corretto.
Grazie ancora.
Ogni consiglio o suggerimento è sempre più che bene accetto. ;)
OpenOffice 4.1.7 / LibreOffice 6 still - Windows 10 Pro x64
"Facesti come quei che va di notte, che porta il lume dietro e sé non giova, ma dopo sé fa le persone dotte"
Dante (Purgatorio, Canto XXII)
Avatar utente
markinson
 
Messaggi: 87
Iscritto il: mercoledì 24 giugno 2020, 15:18


Torna a Base

Chi c’è in linea

Visitano il forum: Majestic-12 [Bot] e 7 ospiti