Collegamento a Database SQLite3

di il
13 risposte

Collegamento a Database SQLite3

Salve a tutti!

Avrei bisogno di collegarmi (se possibile) ad un database SQLite3 per visualizzare e modificare le tabelle.

Credo ci sia bisogno di un driver ODBC, però preferisco prima chiedere consiglio.

Grazie a tutti per il supporto!

13 Risposte

  • Re: Collegamento a Database SQLite3

    Ciao,
    queste sembrano tutte ragionevoli

    https://www.connectionstrings.com/sqlite
  • Re: Collegamento a Database SQLite3

    Si serve il Driver ODBC ovviamente, ma poi hai più modi per realizzare le connessioni...
    Puoi usare DSN o una connessione che si chiama DSN_LESS che sfrutta la ConnectionString applicata all'oggetto Tabledef.

    Puoi leggere questo:
    https://support.microsoft.com/en-us/office/administer-odbc-data-sources-b19f856b-5b9b-48c9-8b93-07484bfab5a7

    Io non uso mai DSN, preferisco linkare le Tabelle con stringa di connessione.

    Devi poi capire, soprattutto in caso di Accesso MultiUtente se e come gestire la sicurezza, ed anche il fatto che le Tabelle dovrebbero essere LINKATE all'apertura e RIMOSSE alla chiusura, proprio per questioni di sicurezza... e questo implica una procedura da realizzare con del codice VBA, in rete c'è di tutto.

    Fai poi attenzione che se non realizzi la Connessione/Rimozione automatica, ad ogni modifica della Tabella del Server devi cancellare e rigenerare le LinkedTable.
  • Re: Collegamento a Database SQLite3

    Grazie mille settantatre

    Per caso sai anche spiegarmi come funziona?
    Io ho installato proprio quello per win64, poi son andato in “Amministrazione origine dati ODBC” ed ho aggiunto il database SQLite3 su DSN di sistema e utente. Infine sono andato su Access/Dati Esterni/Da altre origini/Database ODBC
    Ho scelto di importare i dati in una nuova tabella e poi sulla schermata di selezione origine dati ho cliccato su “Origine dati Computer” e scelto il database SQLite che avevo aggiunto inizialmente ma ricevo come risposta:
    “ODBC chiamata non riuscita”

    Dove sbaglio?

    Grazie mille per il supporto!!
  • Re: Collegamento a Database SQLite3

    Ciao Alex!

    Grazie per la risposta!
    Per caso potresti darmi un aiuto in più su come fare?
    Purtroppo sono disorientato

    Grazie per il supporto!!
  • Re: Collegamento a Database SQLite3

    Trovi tutto nel sito MS... sulla connessione CON e SENZA DSN, che ti consiglio.
    https://docs.microsoft.com/it-it/office/troubleshoot/access/create-dsn-less-connection-linkted-table
  • Re: Collegamento a Database SQLite3

    Grazie Alex!!
    Ci lavorerò sopra

    Grazie ancora per l’aiuto
  • Re: Collegamento a Database SQLite3

    Ciao Alex!

    Ho letto l'articolo e fatto alcuni test.
    Volevo fare alcune considerazioni nella speranza che tu possa correggere quelle sbagliate:

    tu hai detto:
    1) "Io non uso mai DSN, preferisco linkare le Tabelle con stringa di connessione."
    da quello che ho capito lo preferisci perchè così si evita di dover creare manualmente una connessione per ogni PC che deve connettersi al DB, mentre facendolo tramite stringa di connessione e quindi in modalità DSN_LESS è sufficiente che l'utente abbia solo installato il Driver ODBC

    2) "Fai poi attenzione che se non realizzi la Connessione/Rimozione automatica, ad ogni modifica della Tabella del Server devi cancellare e rigenerare le LinkedTable."
    Io ho fatto una prova, ovvero mi sono connesso ad alcune tabelle del database (tramite Dati Esterni/Da altre origini/Database ODBC); ho modificato alcuni record ed ovviamente le modifiche sono state apportate ed infine ho fatto il contrario, ovvero ho modificato il Database lato server e poi ho riaperto Access aspettandomi che i collegamenti non fossero più validi ed invece tutto sembrava "sincronizzato"...

    3) "Devi poi capire, soprattutto in caso di Accesso MultiUtente se e come gestire la sicurezza, ed anche il fatto che le Tabelle dovrebbero essere LINKATE all'apertura e RIMOSSE alla chiusura, proprio per questioni di sicurezza"
    Non ho capito bene il fatto della questione di sicurezza di questa procedura

    Ho capito tutto bene?
  • Re: Collegamento a Database SQLite3

    1)Si diciamo che lo trovo più pratico, ma spesso questa è soggettiva

    2) Temo che il tuo test sia poco indicativo... quando perderai ore a capire cosa non funziona e poi rigenerando tutto si sistema magari ti verrà in mente questo suggerimento.

    3)Se lasci linkate letabelle al server hai 2 problemi di sicurezza importanti.
    3.a) nella tabella di sistema dedicata si vede in chiaro la connectionstring pwd inclusa... e chiunque la può vedere... molto facilmente
    3.b) se si usa un file accdb/mdb nuovo vuoto e linko le tabelle non dal server ma dal tuo client che ha mantenuto le linkedtable non serve nemmeno inserire la connectionstring... e sono già nel server...
    Quindi il client va almeno protetto e va impedito si possano recuperare le credenziali di accesso al server e questo puoi farlo eliminando le tabelle e ripristinandole.
    Ovviamente la stringa si salva criptata da qualche parte anche nel codice ma poi lo devi compilare in Accde/mde, oppure in altri modi...
  • Re: Collegamento a Database SQLite3

    Ciao Alex!

    Ho continuato a fare Test ed effettivamente (riguardo al punto 2) hai ragione (OVVIAMENTE!!);
    cioè hai ragione su tutto ma ho sperimentato che ci sono cose che non vengono aggiornate, ad esempio se cambio tipo di dato su un campo lato server, lasciando le connessioni attive non ritrovo l’aggiornamento.

    Quindi se ho ben capito quello che conviene fare per tutta una serie di motivi che hai descritto è utilizzare una procedura mediante codice (spulciando dal materiale informativo che mi hai linkato) che crea le connessioni mediante stringa di connessione all’apertura del DataBase e che poi rimuova queste connessioni alla chiusura.
    Corretto?

    Poi sul fatto della stringa criptata ci arriverò più avanti
  • Re: Collegamento a Database SQLite3

    Si, se ti interessa quì trovi un mio Articolo che da qualche ulteriore chiarimento tecnico.
    Si basa su LinkedTable connesse ad un File(Access) con estensione ACCDB, ma se entri nella logica ti risulterà semplice modificarne la Stringa di Connessione ed adattare quell'esempio alla connessione al tuo Server SQL.
  • Re: Collegamento a Database SQLite3

    Grazie Alex!!
    Articoli molto interessanti!!

    Ho una domanda:
    perchè avviare la procedura di ReLinkTable dopo un intervallo di tempo (che se non sbaglio hai impostato a 200 ms)?

    Per dare il tempo di caricare i settaggi dal Registry?
  • Re: Collegamento a Database SQLite3

    In realtà è solo perchè su LOAD della form generava un problema sul ricopnoscimento degli Oggetti del Database.
    In sostanza non venivano eseguite le azioni in modo corretto dal punto di vista temporale di caricamento in quanto il caricamento della Form e di Access quasi in contemporanea non consentivano al ciclo di trovare tutti gli oggetti.
    Questo perchè la Form in questione viene caricata immediatamente, basta il classico Prompt di LOGIN per rendere non necessario quel metoto, che in sostanza, è solo una sorta di DELAY di 200ms... per dare il tempo ad Access di caricarsi completamente ed alla maschera di attendere qualche istante prima di iniziare la sequenza.
  • Re: Collegamento a Database SQLite3

    Grande idea!!!
    Grazie ancora Alex!
Devi accedere o registrarti per scrivere nel forum
13 risposte