Autore Topic: Access DB e ODBC  (Letto 1979 volte)

Offline dregi

  • Gambero
  • **
  • Post: 85
  • Non possum tuis usque tandem abutere patientiae?
    • Mostra profilo
Access DB e ODBC
« il: 20 Agosto 2019, 18:00:02 »
Nella programmazione in VB6 ho utilizzato alcuni database access *.mdb contenenti ormai parecchi dati. L'intenzione è quindi quella di poterli ancora utilizzare in Gambas3. Per farlo ho caricato i driver ODBC ed ho configurato come mostro più sotto
il file etc/odbcinst.ini

Codice: [Seleziona]
[MDBTools]
Description=MDBTools Driver
Driver=libmdbodbc.so
Setup=libmdbodbc.so
FileUsage=1
UsageCount=1

[MDB]
Description=Driver per accesso a database Access
Driver=/usr/lib/libmdbodbc.so.0
Usage=1
FileUsage=1

[ODBC Driver 17 for SQL Server]
Description=Microsoft ODBC Driver 17 for SQL Server
Driver=/opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.4.so.1.1
UsageCount=1

e il file  il file /etc/odbc.ini

Codice: [Seleziona]
[ClientiDS]
Description = Il db access clienti
Driver = /usr/lib/libmdbodbc.so.0
Database = /home/my/OptoGambas/DB/clienti.mdb

[RicevuteDS]
Description = Il db access ricevute
Driver = /usr/lib/libmdbodbc.so.0
Database = /home/my/OptoGambas/DB/ricevute.mdb

Ebbene, ora per poter richiamare ed aprire un database, che passaggi ancora devo fare, quale stringa di connessione usare?

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.243
  • Tonno verde
    • Mostra profilo
Re:Access DB e ODBC
« Risposta #1 il: 20 Agosto 2019, 19:25:57 »
Non ho mai usato ODBC in Gambas, quindi non posso aiutarti nello specifico.
Però una cosa te la voglio dire, per me stai per intraprendere una strada impervia che porta ad un burrone profondissimo.
Access è per Windows non per Linux.
Se non hai una necessità del tipo: Ho un database Access sul server e già due client Windows collegati ora devo aggiungere un client su macchina Linux... che anche così ti consiglierei di informarti su come spostare il tutto su un server Linux e MySql ecc.
La cosa migliore che puoi fare è copiare tutto il database su SQLite.
Ti ricrei il database in SQLite e poi esporti i dati di access in txt o csv e successivamente li importi nelle tabelle di SQLite.

Ricorda un buon consiglio vale oro, però non so dirti se questo lo è  ;D
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline dregi

  • Gambero
  • **
  • Post: 85
  • Non possum tuis usque tandem abutere patientiae?
    • Mostra profilo
Re:Access DB e ODBC
« Risposta #2 il: 20 Agosto 2019, 20:38:32 »
Ti ringrazio Gianluigi per il consiglio. Anch'io mi rendo conto che Access è strettamente legato a Windows e tentare di far girare il tutto sotto Linux può essere, come dici tu, rischioso. Se si trattasse di conversione dei dati metti che ci potrei anche provare, ho letto che MySql da te suggerito funziona molto bene. Il fatto è che non so nulla di Server, non ho mai utilizzato questa metodica, non so come si avvia, come lo si configura (tasto doloroso penso), come lo si collega, in che file vengono salvati i dati... l'unica cosa di cui sono "certo" è di conoscere le query SQL e mi sembra pochino. Per cui sono proprio in alto mare.

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.243
  • Tonno verde
    • Mostra profilo
Re:Access DB e ODBC
« Risposta #3 il: 20 Agosto 2019, 21:56:57 »
Intanto chiariamo che io ti consigliavo di usare SQLite al posto di Access.
MySql l'ho nominato solo nel caso che tu usassi già un server.
SQLite si potrebbe definire (sbagliando) l'Access di Linux, non gira su server è un unico file che ottieni all'installazione di Gambas, lo hai già.
Tuttalpiù potresti installare il comando sqlite3 se vuoi usarlo col terminale.
Qui trovi il sito ufficiale di SQLite:
https://sqlite.org/index.html

Qui un tutorial per imparare ad usarlo:
http://www.sqlitetutorial.net/

Se invece sei interessato allo studio di un database tosto paragonabile a Oracle, il vero fuoriclasse di Linux è PostgreSQL, qui la guida di come installarlo per averlo in un unica macchina (e usarlo come usavi Access):
https://www.gambas-it.org/wiki/index.php?title=Installazione_Server_PostgreSQL
Fai attenzione, se vieni da Windows e non sei abituato a usare il terminale tutta la prima parte dei comandi della guida si riferisce all'user (cioè tutte le lettere a sinistra di e fino a $ sono il prompt dei comandi).
Puoi leggere questa discussione che oltre a mostrarmi imbranato come in effetti sono, spiega alcune cose utili:
http://www.gambas-it.org/smf/index.php?topic=4547.msg37286#msg37286


Ti metto in guardia su una cosa importante, troppe volte ho visto persone che vengono da VB e Windows pensando di sapere già tanto, pensano di riproporre pari pari le loro conoscenze, si scornano, si scoraggiano e se ne vanno.

Se sei veramente interessato a Linux sappi che Gambas3 anche se si propone come un VB per Linux non lo è affatto.
Linux è molto diverso da Windows e Gambas è diverso da VB anche se usa lo stesso linguaggio.

In Linux ci sono desktop diversi che usano diverse librerie grafiche QT e GTK le principali questo comporta problemi che in Windows non devi affrontare.

Le finestre di Gambas si costruiscono partendo dai contenitori studia molto il codice dei guru prima di porre mano a un progetto importante...

Buonanotte
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline dregi

  • Gambero
  • **
  • Post: 85
  • Non possum tuis usque tandem abutere patientiae?
    • Mostra profilo
Re:Access DB e ODBC
« Risposta #4 il: 22 Agosto 2019, 15:56:12 »
Ti ringrazio per i link. A questo punto, sono quindi ad un bivio SQLite  o PostgreSQL ?
Entrambi permettono l'uso in rete?.
Riuscirò a trasferire i dati da un database *.mdb al nuovo database?

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.243
  • Tonno verde
    • Mostra profilo
Re:Access DB e ODBC
« Risposta #5 il: 22 Agosto 2019, 17:02:53 »
Ti ringrazio per i link. A questo punto, sono quindi ad un bivio SQLite  o PostgreSQL ?
Entrambi permettono l'uso in rete?.
Per SQLite ti risponderei di no, leggi qui:
https://stackoverflow.com/questions/26690226/sqlite-db-remote-file-connection
A SQLite deve accedere un solo programma se hai bisogno che più utenti accedano ai dati devi usare PostgreSQL o MySql
Citazione
Riuscirò a trasferire i dati da un database *.mdb al nuovo database?

Ma si, qui ci sono Golia, dex (che lo ha appena fatto col suo aiuto * ), ma soprattutto, e non me ne vogliano gli altri  :P , ora possiamo contare sull'apporto di shordi un professionista della materia.

* http://www.gambas-it.org/smf/index.php?topic=4755.msg37990#msg37990

Bada che anche noi qui abbiamo dei guru milio, sotema ma se ne stanno zitti  :-\
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline dregi

  • Gambero
  • **
  • Post: 85
  • Non possum tuis usque tandem abutere patientiae?
    • Mostra profilo
Re:Access DB e ODBC
« Risposta #6 il: 22 Agosto 2019, 18:08:26 »
Ringrazio veramente molto delle dritte. Ora mi metterò a studiare un po' PostgreSQL e poi ci provo e torno "alla carica" sul blog.
Volevo dirla una cosa. Sono impressionato dall'accoglienza e dalla disponibilità che ho trovato in questo ambiente, lo dico perchè in passato in altre situazioni, mi sono trovato e scontrato
con persone arroganti e piene di se che facevano sempre a gara a chi la sapeva più lunga, ma quel NG è morto, come è logico che succedesse.
Grazie ancora.

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.719
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Access DB e ODBC
« Risposta #7 il: 22 Agosto 2019, 18:14:28 »
Sono impressionato dall'accoglienza e dalla disponibilità che ho trovato in questo ambiente

L'importante per chiunque chieda aiuto nel forum è porre domande brevi e chiare, con alcune essenziali righe di codice - laddove possibile - che riproducano il problema riscontrato.
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline dregi

  • Gambero
  • **
  • Post: 85
  • Non possum tuis usque tandem abutere patientiae?
    • Mostra profilo
Re:Access DB e ODBC
« Risposta #8 il: 25 Agosto 2019, 10:48:12 »
vuott, capisco, certo, è giusto.
Mi riferivo unicamente alla buona educazione delle persone, si può essere gentili anche se si capisce che chi ha fatto la domanda non sa, pensa di sapere o non ha ancora capito alcune cose.
Non tutti quelli che sviluppano applicazioni nei vari linguaggi sono professionisti. Io ho una certa età e ho sempre sviluppato per diletto e sono autodidatta in tutto ciò che ho fatto, con relative difficoltà connesse, ma un gestionale per il mio studio in VB6 sono riuscito a svilupparlo, funziona che è una meraviglia, anche perchè calato nelle problematiche dello studio, nel tempo l'ho sempre cambiato. Ho sviluppato anche altre cose anche in altri linguaggi. Ora ho scoperto gambas e mi ci sto avventurando.

Offline Berserker79

  • Grande Gambero
  • ***
  • Post: 201
    • Mostra profilo
Re:Access DB e ODBC
« Risposta #9 il: 25 Agosto 2019, 11:41:14 »
Ciao dregi, come suggerito da Gianluigi, io opterei per l'uso di sqlite in sostituzione di access.
PostgreSQL è un ottimo db, ma parliamo di un db di tipo server che offre molte funzioni che magari a te non servono.
Se adesso utilizzi un db access, sicuramente sqlite è la scelta migliore.
Poi se vuoi utilizzare PostgreSQL per ampliare le tue skills, va bene, ma dovrai spenderci un po di tempo in più rispetto a sqlite.
Ciao.

Offline dregi

  • Gambero
  • **
  • Post: 85
  • Non possum tuis usque tandem abutere patientiae?
    • Mostra profilo
Re:Access DB e ODBC
« Risposta #10 il: 29 Agosto 2019, 16:14:41 »
Poi se vuoi utilizzare PostgreSQL per ampliare le tue skills, va bene
Ciao Berserker, devo scegliere PostgreSQL per il fatto che prevedo una connessione su più PC.
ma dovrai spenderci un po di tempo in più
Azz, sei hai ragione, dunque, installato PostgreSQL, provo il collegamento da Gambas.... ed è tutto OK, allora installo pure pgAdmin4 e, non so più da dove  :-\, trovo una guida per una installazione facile, facile... et voila, tutto scorre bene, apro e creo un DB con una sua tabella, riprovo il collegamento da Gambas, ancora tutto ok  :ok: , mi faccio prendere dall'entusiasmo e.... nel frattempo mi arriva una proposta di upgrade versione di Ubuntu a 19, la faccio.....  :o non l'avessi mai fatto, una caporetto. pgAdmin non parte più per non parlare di altre quisquiglie del sistema che non sto qui a citare, non mi arrendo provo una clear e reinstallazione e.... basta, non trovo una via semplice per installarlo. Non mi arrendo, abbandono pgAdmin4, scarico DBeaver, va a buon fine, collego PostgreSQL e.... :-\ niente, è sparito il mio database.... mi sto ancora leccando le ferite e l'entusiasmo è sotto i tacchi. Scusa il romanzo, ogni tanto fa bene sfogarsi.

Offline Berserker79

  • Grande Gambero
  • ***
  • Post: 201
    • Mostra profilo
Re:Access DB e ODBC
« Risposta #11 il: 29 Agosto 2019, 18:24:55 »
Purtroppo sono inconvenienti da tenere in conto, ovviamente lavorare con un db come postgres o come può essere sqlserver, è tutto un'altra faccenda rispetto ad un db standalone come sqlite o access.
Dovresti approfondire bene le conoscenze di postgres in modo che in futuro non capitino problematiche simili o comunque tu possa ripristinare rapidamente l'installazione del server ed il ripristino dei dati backupati.
Nel tuo caso comunque, il problema magari non è da ricercare nell'installazione di postgres, ma mi sembra di aver capito che dopo l'aggiornamento hai avuto dei problemi generali, quindi vedi di sistemare prima il corretto funzionamento del sistema operativo e poi riprovi con l'installazione di postgres. In alternativa potresti utilizzare una macchina virtuale da utilizzare esclusivamente per  postgres e continuare le prove.

Offline allegfede

  • Gran Maestro dei Gamberi
  • *****
  • Post: 738
    • Mostra profilo
Re:Access DB e ODBC
« Risposta #12 il: 30 Agosto 2019, 12:15:12 »
Ti ringrazio per i link. A questo punto, sono quindi ad un bivio SQLite  o PostgreSQL ?
Entrambi permettono l'uso in rete?.
Riuscirò a trasferire i dati da un database *.mdb al nuovo database?

POSTGRES? SQLite?

sarebbe il caso di analizzare l'archiettura del tuo sistema per fare una scelta.

evitare come la morte MariaDB in primis, ma tieni a mente che un database sqlite (lite e' un indizio) e' un file a cui si accede con dei metodi "tipo" sql.
E' veloce per pochi dati e non e' molto gestibile la politaica degli accessi (utenti).
un database tipo mysql o postgres invece sono pensati per accesso distribuito attraverso la rete. sono piu' lenti ma scalano meglio con la crescita dei dati.
E' migliore la gestione delle politiche di accesso (utenti e permessi).

PS: in realta', da motore a motore e da implementazione ad implementazione, le affermazioni suddette, non sono sempre vere. Al momento esistono DB sql-less, pensati per applicazioni distribuite (cloud) che sono piu' veloci ed efficienti dei classici mysql :-/
se corri, morirai stanco (motto degli sniper)