Mantenimento della formattazione del codice SQL nell'editor

di il
9 risposte

Mantenimento della formattazione del codice SQL nell'editor

Domanda un po' strana riguardo all'editor delle query di Ms Access.

Solitamente per la creazione e modifica delle query uso la visualizzazione della struttura “grafica”, ma per un lavoro ho la necessità di usare la struttura SQL che è accettabile con le query semplici, ma illeggibile con una query complessa.

C'è un modo per mantenere l'indentazione definita nell'editor, per esempio come l'editor VBA?

Grazie 

9 Risposte

  • Re: Mantenimento della formattazione del codice SQL nell'editor

    No, l'editor SQL quando lo riapri rilegge il predicato ed il parser nativo lo riformatta…

    Purtroppo l'editor è vecchio e mai rinnovato.

  • Re: Mantenimento della formattazione del codice SQL nell'editor

    18/12/2023 - Snupix ha scritto:

    C'è un modo per mantenere l'indentazione definita nell'editor

    Manco quella tiene, @Alex è stato categorico. L'unica evoluzione che ha avuto l'editor SQL dalla sua nascita credo sia la possibilità di modificare il carattere e le dimensioni e forse il trova-sostituisci.

    Qualcuno aveva provato anni or sono a far qualcosa:

    https://www.msaccessgurus.com/tool/Addin_SQLSpacer.htm (che con Access365 mi fa dannare)

    https://www.devhut.net/ms-access-improved-sql-editor/ (che si regge sul controllo web browser, in via di estinzione)

    https://fieldeffect.info/wp/access-sql-editor-documentation/ (a pagamento)

    Poi però si sono fermati un po' tutti perché sembrava che dopo attesa interminabile arrivasse un nuovo editor SQL, integrato con “Monaco”, con tanto di data di rilascio indicativa: anno 2021. La tabella in cui era indicata quella data è sparita e del nuovo editor nemmeno la traccia.

    Personalmente mi arrabatto con copia incolla tra la finestra SQL di Access e Notepad++ con l'estensione Poor Man's T-SQL Formatter. Dall'editor SQL prendo l'elenco dei campi e le tabelle interessate, poi proseguo solo su notepad++. Alla fine altro copia incolla e torno “di là”, ma è ovvio che all'apertura successiva è già andato perso tutto e via ancora con copia incolla.

    Quanta pazienza!

  • Re: Mantenimento della formattazione del codice SQL nell'editor

    Uso Access da più di vent'anni e in tanti anni Ms Access avrebbe meritato un editor di questo tipo. 

    Anch'io mi arrangio da tanto con Notepad++, ma appunto il problema è la eventuale revisione.

    Ieri cercando avevo visto appunto l'editor di devhut.net, ma proverò il primo che è stato indicato. Fa dannare tanto?

    Grazie a entrambi.

  • Re: Mantenimento della formattazione del codice SQL nell'editor

    19/12/2023 - Snupix ha scritto:


    mi arrangio da tanto con Notepad++,

    e con l'estensione Poor Man's T-SQL Formatter, altrimenti perdi tutta l'indentazione, i ritorni a capo automatici ecc ecc. Ce ne sono forse un altro paio ma a suo tempo non ero soddisfatto. Questa me gusta e me la son tenuta (che poi la usi anche il mio quasi omonimo Phil - Philipp Stiefel di codekabinett.com l'ho scoperto pochi mesi fa. Due Phil, due garanzie che quella combinazione notepad++ e Poor Man's… è la scelta (di ripiego) migliore.

    19/12/2023 - Snupix ha scritto:

    proverò il primo che è stato indicato. Fa dannare tanto?

    Mah… semplicemente non va. Però devo ammettere che non c'è versato litri di sudore per farlo andare.

  • Re: Mantenimento della formattazione del codice SQL nell'editor

    Ho provato “Poor Man's T-SQL Formatter” ed è già di grande aiuto. 

    Peccato che per le funzioni IIF non mantenga la formattazione desiderata. Mi sembra mantenga la formattazione in corrispondenza della virgola per campo/colonna.

    Proverò anche l'altra soluzione.

    Grazie.

  • Re: Mantenimento della formattazione del codice SQL nell'editor

    19/12/2023 - Snupix ha scritto:


    per le funzioni IIF non mantenga la formattazione desiderata. Mi sembra mantenga la formattazione in corrispondenza della virgola per campo/colonna.

    Non ho capito. Penso siano due cose diverse, giusto? Puoi farmi un esempio di cosa gli hai dato in pasto, come l'ha formattato e invece di come ti aspettavi che fosse? Magari è sufficiente aggiustare qualche impostazione.

  • Re: Mantenimento della formattazione del codice SQL nell'editor

    19/12/2023 - Philcattivocarattere ha scritto:


    19/12/2023 - Snupix ha scritto:


    per le funzioni IIF non mantenga la formattazione desiderata. Mi sembra mantenga la formattazione in corrispondenza della virgola per campo/colonna.

    Non ho capito. Penso siano due cose diverse, giusto? Puoi farmi un esempio di cosa gli hai dato in pasto, come l'ha formattato e invece di come ti aspettavi che fosse? Magari è sufficiente aggiustare qualche impostazione.

    Sia chiaro che non ho la pretesa che funzioni come voglio, comunque

    il tool mi propone

    SELECT C.Anno
        ,C.TipoPeriodo
        ,C.ID_Socio
        ,C.ID_GruppoEdifici
        ,C.ID_GruppoScale
        ,C.ID_Edificio
        ,C.ID_Alloggio
        ,MOSC.MMOcc
        ,MOSP.MMOcc AS MMOccSP
        ,IIf(C.TipoPeriodo = "1S", IIf(IsNull(RSC.CanoneAlloggio), Round((Nz(ICA.CanoneAlloggio, 0) / 12) * MOSC.MMOcc, 2), Round((RSC.CanoneAlloggio / MOSP.MMOcc) * (1 + Nz(C.PercentualeISTAT, 0) / 100) * MOSC.MMOcc, 2)), IIf(IsNull(RSC.CanoneAlloggio), Round((Nz(ICA.CanoneAlloggio, 0) / 12) * MOSC.MMOcc, 2), Round((RSC.CanoneAlloggio / MOSP.MMOcc) * MOSC.MMOcc, 2))) AS CanoneAlloggio

    ma per facilitare la lettura, sarebbe comodo poter evidenziare meglio la parte degli in questo modo


    SELECT C.Anno
        ,C.TipoPeriodo
        ,C.ID_Socio
        ,C.ID_GruppoEdifici
        ,C.ID_GruppoScale
        ,C.ID_Edificio
        ,C.ID_Alloggio
        ,MOSC.MMOcc
        ,MOSP.MMOcc AS MMOccSP
        ,IIf(C.TipoPeriodo = "1S"
            , IIf(IsNull(RSC.CanoneAlloggio)
                , Round((Nz(ICA.CanoneAlloggio, 0) / 12) * MOSC.MMOcc, 2)
                , Round((RSC.CanoneAlloggio / MOSP.MMOcc) * (1 + Nz(C.PercentualeISTAT, 0) / 100) * MOSC.MMOcc, 2))
            , IIf(IsNull(RSC.CanoneAlloggio)
                , Round((Nz(ICA.CanoneAlloggio, 0) / 12) * MOSC.MMOcc, 2)
                , Round((RSC.CanoneAlloggio / MOSP.MMOcc) * MOSC.MMOcc, 2))) AS CanoneAlloggio

  • Re: Mantenimento della formattazione del codice SQL nell'editor

    C'hai messo del tuo con un po' di IIf, eh? 

    Nota tra le righe: se come me preferisci che la virgola sia dopo il nome del campo e poi il ritorno a capo, anziché all'inizio di ogni riga seguita dal nome del campo successivo, nelle impostazioni metti la spunta su “Trailing Commas” (a me ogni tanto sparisce quella spunta, la devo reimpostare ma non mi faccio tante domande visto l'uso sporadico)

    Ho provato alcuni formattatori di SQL on line e solo pochi indentano le IIf, non però come vorresti tu, tipo:

    IIf(
        C.TipoPeriodo = "1S",
        IIf(
            IsNull(RSC.CanoneAlloggio),
            Round((Nz(ICA.CanoneAlloggio, 0) / 12) * MOSC.MMOcc, 2),
            Round(
                (RSC.CanoneAlloggio / MOSP.MMOcc) * (1 + Nz(C.PercentualeISTAT, 0) / 100) * MOSC.MMOcc,
                2
            )
        ),
        IIf(
            IsNull(RSC.CanoneAlloggio),
            Round((Nz(ICA.CanoneAlloggio, 0) / 12) * MOSC.MMOcc, 2),
            Round((RSC.CanoneAlloggio / MOSP.MMOcc) * MOSC.MMOcc, 2)
        )
    ) AS CanoneAlloggio

    Tra quelli che ho provato è il meno peggio per quanto riguarda le IIf. Per completezza: https://smalldev.tools/sql-formatter-online (ma figurarsi quanti altri ce ne sono!)

    Però è chiaro che bisogna andare on line e sempre il copia incolla con l'editor di Access. A meno che… non vi mettiate tutti d'impegno a modificare Poor Man's T-SQL Formatter o ne creiate uno ex novo. Perché il “voi” e non il “noi”? Perché io non lo fare, mi sembra chiaro.

    Direi che possiamo fermarci, visto che dell'editor SQL di Access, oggetto del thread, ormai non si può dir più niente (lo scrivo solo perché non diventi un thread dei migliori editor/formattatori SQL on line; magari si può anche aprire ma vale per tanti database, non solo per Access)

  • Re: Mantenimento della formattazione del codice SQL nell'editor

    21/12/2023 - Philcattivocarattere ha scritto:


    C'hai messo del tuo con un po' di IIf, eh? 

    Avevo premesso che era una query complessa.  Diversamente avrei dovuto passare da query a modulo e poi ritorno. 

    Comunque, è già di grande aiuto lo strumento che mi hai consigliato. 

    Grazie

Devi accedere o registrarti per scrivere nel forum
9 risposte