Newsgroup: it.comp.lang.delphi
Titolo: Firebird embedded e connessione ODBC

Un saluto a tutti.
Ho la necessità di accedere ad un database FireBird *EMBEDDED* utilizzando ODBC.
Ho fatto un po di prove e ho cercato sul web ma non ho trovato il modo di indicare alla fonte dati ODBC che deve usare come protocollo "LOCAL" (vedi stringhe di connessione usate ad esempio con Firedac...) e non tcp.
 
Usando TCP, in assenza del servizio di Firebird Server, la connessione non funziona.
 
..si...lo so...ma DEVO usare ODBC....
 
Grazie per ogni dritta.
 
A.
 

 Usando TCP, in assenza del servizio di Firebird Server, la connessione non funziona.
 
non mi è mai capitato tale esigenza, però nel mio piccolo proverei, anzichè LOCAL mettere 127,0,0,1 ( a memoria ) l'IP di localhost.
 
Probabilmente ti sto dicendo una cavolata grande come una casa, però ...
 
Ciao da Enrico Giudici c/o Anthelios


Premetto che non ho mai usato FB in embedded, tantomeno in ODBC!
 
Ho visto che nlla connessione 
ADO.NET
 si usa il parametro ServerType=1 per
distinguere la connessione embedded.
 
Ho visto che tu usi ODBC e non 
ADO.NET
 ma se non avevi gia' fatto una
prova io un tentativo la farei comunque :)
 
...a me e' gia' capitato di sistemare dei problemi su ADO usando parametri 
"non documentati" presi da stringhe 
ADO.NET
 e viceversa.
 
ciao
Giacomo
 
 
 

> anzichè LOCAL mettere 127,0,0,1 ( a memoria ) l'IP di localhost.
 
 
Grazie, Enrico.
Ma quello e' l'Host...
Io ho usato firebird Embedded molte volte in delphi ma senza passare da ODBC.
Ad esempio, con firedac puoi indicare il parametro "protocol".
Ma da ODBC fino ad ora non ho trovato un modo per specificare stu kaz di parametro...
 
A.

 "non documentati" presi da stringhe 
ADO.NET
 e viceversa.
 
Idem! :-D
 
A.

Ciao Alberto,
 
su questi link ( soprattutto l'ultimo ) dovresti trovare quello che fa per te.
 
http://web.synametrics.com/firebird.htm
 
http://stackoverflow.com/questions/6002312/firebird-how-to-use-embedded-server-with-odbc-oledb
 
https://www.connectionstrings.com/firebird/
 


 ODBC.
 
Buona morte, Stack Overflow (il primo link suggeritomi da Google) dice di
indicargli di usare la libreria embedded (in teoria dovrebbe funzionare
direttamente così, in alternativa prova a rinominarla in gds32.dll)
 
Enrico

> Buona morte, 
 
..sgrat sgrat.. :-D
 
Comunque sul tardi ho risolto.
Ho fatto un po di pulizia, riavviato la baracca, reinstallato i driver e tutto è andato a posto, indicando nela fonte dati odbc che la libreria client non è *fbclient.dll* ma *fbembed.dll*
 
 
Il tutto grazie ad un collega che vedendomi imprecare si è incuriosito e mi ha dato un po di supporto.
In pratica, avevo fatto confusione tra i driver odbc a 32bit e quelli a 64 bit.
|
Va be...grazie a tutti voi per le dritte.
 
Comunque, al momento se cercate un db embedded relazionale e non basato su java, le scelte sono essenzialmente 2:
 
1) sqllite
2) firebird
 
Ihmo, c'è un solo motivo per NON preferire sqllite, ovvero la mancanza di un tipo di dati nativo per le date:
 
https://www.sqlite.org/datatype3.html
 
 
A.
 
 
 
 
 
 
 
En passant, aggiungo un dettaglio.
Db embedded ce ne sono, ma andando a scremare escludendo i non RELAZIONALE e non key value, NON basato su JAVA e che sia supportato
 
1) quelli basati su java 
2) quelli che 
 
 
 
 
Nel setup
 
 

 Applications can chose to store dates and times in any of these formats and freely
 > convert between formats using the built-in date and time functions.
 
 
-- 
Morde

 di conversione:
 
Lo so...e ti quoto! :-)
 
A.

 Ihmo, c'è un solo motivo per NON preferire sqllite, ovvero la mancanza di un tipo di dati nativo per le date:
 
Non e` un motivo per non preferirlo. In SQLite usi tranquillamente un epoch per le date.
 
 

 a suo vantaggio.
 
Punti di vista. Personalmente ritengo dichiarazione dei datatype by manifest
di sqlite pericolosa, soprattutto se si è alle prime armi
 
Enrico

 di sqlite pericolosa, soprattutto se si è alle prime armi
 
per esempio?

 per esempio?
 
Ad esempio, proprio per dirne una semplicistica, inserisci dati in un campo
(che nelle tue intenzioni deve contenere dati testuali) invece di un altro
(che nelle tue intenzioni deve contenere dati numerici). Errori che con un
po' di esperienza o, se sei già scafato, tramite l'uso di datatype,
è difficile che capiti su altri database
 
Enrico

 (che nelle tue intenzioni deve contenere dati numerici).
 
Eh, ma questo e` intrinseco nel manifest typing. Personalmente, e` una caratteristica che mi piace. Ho sempre trovato gli RDBMS classici troppo rigidi sui tipi.