PDA

Visualizza la versione completa : [DELPHI] Accesso a database FireBird in XE2


bomberone74
05-04-2012, 17:50
Ho sempre sviluppato applicazioni con Delphi5 e Firebird.
Volendo aggiornarmi (e non poco..) ho acquistato DelphiXE2 e l'ho installato sul mio pc con Windows7.
Ora però tutte le applicazioni sviluppate con Delphi5 quando accedono ai database firebird (*.fdb) mi restituiscono un errore di connessione.
Anche tentando l'accesso diretto con IBExpert mi restituisce lo stesso errore.

Ho già provato a disinstallare e re-installare Firebird ma non è cambiato nulla. Che cosa può essere successo? Come faccio a ripristinare la situazione precedente?

Grazie
GianLuca borghesan

alka
05-04-2012, 18:18
Originariamente inviato da bomberone74
Anche tentando l'accesso diretto con IBExpert mi restituisce lo stesso errore.


Se l'errore è lo stesso da IB Expert, vuol dire che il problema è nel database, o nell'installazione di FireBird.

Tra l'altro, non hai indicato l'errore che ti viene restituito alla connessione, che direi è indispensabile alla risoluzione del problema.

bomberone74
06-04-2012, 10:55
Grazie per la risposta. Ho già provato a disintallare e poi re-installare Firebird ma senza risultato. Non riesco neanche a creare un db nuovo.
E' qualcosa legato alla installazione di Delphi XE2 oppure alla installazione di Interbase XE Developer Edition? E' successo tutto dopo questa cosa...


L'errore è il seguente sia quando i programmi tentano l'accesso, sia quando da IBExpert provo anche solo a creare un db nuovo:


Nel caso di connessione a server REMOTE

Connecting... Failed!
------------------------------------
Connection not established
.
connection rejected by remote interface.

Attempting to connect to services manager... Failed!
------------------------------------

Connection not established
.
connection rejected by remote interface.

Disconnecting from database... Passed!


Nel caso di server LOCAL il seguente:

Connecting... Failed!
------------------------------------
Unsuccessful execution caused by an unavailable resource.
unavailable database.

Attempting to connect to services manager... Failed!
------------------------------------

Unsuccessful execution caused by an unavailable resource.
Cannot attach to services manager.

Disconnecting from database... Passed!

alka
06-04-2012, 11:10
Originariamente inviato da bomberone74
L'errore è il seguente sia quando i programmi tentano l'accesso, sia quando da IBExpert provo anche solo a creare un db nuovo

Il servizio di FireBird è in esecuzione?

123delphi321
06-04-2012, 11:12
scusate l'intromissione...

è attivo il servizio firebird?

bomberone74
06-04-2012, 11:22
Ho risolto. Era il file gds32.dll che è stato sovrascritto/modificato sicuramente da una di queste installazioni che ho fatto.

Ho seguito questo post che ho trovato in rete ed ho risolto.

http://www.ibprovider.com/forum/site/viewtopic.php?t=602

alka
06-04-2012, 13:27
Originariamente inviato da bomberone74
Ho risolto. Era il file gds32.dll che è stato sovrascritto/modificato sicuramente da una di queste installazioni che ho fatto.


Il file gds32.dll è generalmente il nome utilizzato da InterBase, mentre la libreria di Firebird è chiamata fbclient.dll.

Un tempo era possibile richiedere a Firebird di utilizzare il nome gds32.dll perché estremamente compatibile con InterBase e quindi sostituibile come componente, anche se le strade dei due database, inclusi i formati di file e i rispettivi client si sono man mano diversificati, pertanto al giorno d'oggi risulta più difficile integrarli.

E' bene quindi stare attenti ai nomi delle DLL e alle appartenenze ai rispettivi database per evitare questo genere di problemi.

Ciao! :ciauz:

bomberone74
06-04-2012, 13:51
Ti ringrazio tantissimo per la spiegazione dettagliata. Starò sicuramente più attento in futuro a queste cose.
Ciao :ciauz:

123delphi321
07-04-2012, 12:07
Originariamente inviato da alka
Il file gds32.dll è generalmente il nome utilizzato da InterBase, mentre la libreria di Firebird è chiamata fbclient.dll.

Un tempo era possibile richiedere a Firebird di utilizzare il nome gds32.dll perché estremamente compatibile con InterBase e quindi sostituibile come componente, anche se le strade dei due database, inclusi i formati di file e i rispettivi client si sono man mano diversificati, pertanto al giorno d'oggi risulta più difficile integrarli.

E' bene quindi stare attenti ai nomi delle DLL e alle appartenenze ai rispettivi database per evitare questo genere di problemi.


Ciao Marco,

io non ce l'ho fbclient.dll dove lo devo prendere???
sul mio pc ho installato firebird 2.1.4...forse quella libreria appartiene alla versione 2.5?

grazie

alka
08-04-2012, 15:12
Originariamente inviato da 123delphi321
io non ce l'ho fbclient.dll dove lo devo prendere???
sul mio pc ho installato firebird 2.1.4...forse quella libreria appartiene alla versione 2.5?


No, fbclient.dll esiste da (quasi) sempre.
Si trova nella cartella Bin nel percorso di installazione di Firebird.

Loading