Differenze tra le versioni di "ODBC"
Riga 39: | Riga 39: | ||
Description=FireBird | Description=FireBird | ||
Driver=FireBird | Driver=FireBird | ||
− | Dbname= | + | Dbname=<host server>:<percorso database> |
Client= | Client= | ||
User=pippo | User=pippo | ||
Riga 80: | Riga 80: | ||
Description=Gestionale aziendale | Description=Gestionale aziendale | ||
Driver=FireBird | Driver=FireBird | ||
− | Dbname= | + | Dbname=<host server>:<percorso dell'altro database> |
Client= | Client= | ||
User=pippo | User=pippo |
Versione attuale delle 07:26, 30 apr 2021
ODBC (Open DataBase Connectivity)
Questo wiki è realizzato grazie alle spiegazioni fornite dal membro milio del forum gambas-it.org
ODBC, più precisamente unixODBC è un driver che permette di interfacciarsi con qualsiasi database DBMS a prescindere dalla piattaforma su cui il database risiede.
Per poterci collegare al database occorre per prima cosa scaricare il driver corretto dal sito del database, successivamente dovremo sistemare correttamente i file ini di configurazione odbcinst.ini e odbc.ini.
Qui una spiegazione sulla wiki di Gambas
Faremo un esempio pratico di collegamento tramite driver unixODBC a un database FireBird:
1 - Per prima cosa scarichiamo i driver da qui: https://firebirdsql.org/en/odbc-driver/
2 - Estraiamo i driver in una cartella, ad esempio in Ubuntu li salveremo in /usr/lib/x86_64-linux-gnu/odbc/
3 - Ora dobbiamo configurare il file /etc/odbcinst.ini così:
[FireBird] Description=Firebird driver ODBC Driver=/usr/lib/x86_64-linux-gnu/odbc/libOdbcFb.so Setup=/usr/lib/x86_64-linux-gnu/odbc/libOdbcFb.so UsageCount=1 CPTimeout=0 CPTimeToLive=0 DisableGetFunctions=0 DontDLCLose=1 ExFetchMapping=1 Threading=3 FakeUnicode=0
NOTA: Il nome del tipo di database a cui si collega il driver va posto fra le parentesi quadre in questo caso [FireBird]
4 - Ora configuriamo il file /etc/odbc.ini così, cambiando con i dati corretti di Dbname, User e Password:
[Skema] Description=FireBird Driver=FireBird Dbname=<host server>:<percorso database> Client= User=pippo Password=<passfrase> Role= CharacterSet=WIN1252 ReadOnly=Yes NoWait=No Dialect=3 QuotedIdentifier=Yes SensitiveIdentifier=No AutoQuotedIdentifier=No UseSchemaIdentifier=0 - Set null field SCHEMA LockTimeoutWaitTransactions=0 SafeThread=Yes
NOTA: Il nome della connessione che usa il driver per quel tipo di collegamento va posto fra parentesi quadre, in questo caso [Skema]
Per vedere se il tutto funziona a dovere da terminale diamo il seguente comando, naturalmente cambiando anche qui con i dati corretti:
isql Skema pippo passfrase
Su Gambas la connessione andrà settata in questo modo:
DIM oConn As New Connetion WITH oConn .Type = "odbc" .Host = "Skema" .User = "pippo" .Password = "passfrase" .Open() END WITH
NOTA: Possiamo usare lo stesso driver su diversi database, per ogni database occorre aggiungere al file /etc/odbc.ini i nuovi dati lasciando uno spazio vuoto, ad esempio:
[Mistral] Description=Gestionale aziendale Driver=FireBird Dbname=<host server>:<percorso dell'altro database> Client= User=pippo Password=passfrase Role= CharacterSet=WIN1252 ReadOnly=No NoWait=No Dialect=1 QuotedIdentifier=Yes SensitiveIdentifier=No AutoQuotedIdentifier=No UseSchemaIdentifier=0 - Set null field SCHEMA LockTimeoutWaitTransactions=0 SafeThread=Yes
Quindi su Gambas si setta la nuova connessione in questo modo:
DIM oConn As New Connetion WITH oConn .Type = "odbc" .Host = "Mistral" .User = "pippo" .Password = "passfrase" .Open() END WITH
Altri collegamenti: