Newsgroup: it.comp.lang.delphi
Titolo: firebird e Interbase

ciao
un problema mi angustia. Stò facendo un pò di prove per creare un eseguibile
slegato da bde etcc... in maniera che si possa copiare solo *.exe e i file
per istallarlo. Il problema è il seguente:
ho creato il db firebird con ib Expert, e con delphi sto cercando di
interfacciarmi. Copiati tutti i dll (nella dir del mio eseguibile) come da
readme dei firebird; con delphi utilizzo i componenti Ibx ultima versione ma
non riesco proprio a connettermi (dato il path al componente TIBDatabase se
metto a true la proprietà connected mi dice unavailable database). Qualche
dritta mi potrebbe essere di gradito aiuto. Spero di aver espresso il mio
problema in maniera abbastanza chiara.
ciao
 
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

usi la versione embedded oppure il server?
AS


 
embedded


accertati di usare "local" come procotollo e non tcp/ip.
Inoltre, controlla che il nome del db non includa il nome del pc.
Bye
AS


Facendio doppio click sul componente TIBDatabase Ho già messo in precedenza
local e il data base lo metto a runtime (nella voce database name) ma quando
vado ad aprirlo (sempre a run-time) mi dà: unavalidate database come ti ho
già detto... Non riesco proprio a capire il perchè.


 local e il data base lo metto a runtime 
e a design time, se lo assegni e fai il test?
AS


stessa cosa. Se provo su un altro computer idem. nella directory
dell'eseguibile c'è gds32.dll, il database.fdb e basta...


hai firebird server avviato?
AS


 
NO. Però stiamo parlando di programmi che debbono essere slegati
dall'architettura del computer, nel senzo che se metto su cd i tre file
(exe, db e dll) e li metto su un altro computer dove non c'è niente deve
funzionare .



ti ho messo indifficoltà? :) ;)


Gionata Del Gatto ha scritto:

le cose sono due... o non hai rinominato il file fbembed.dll in 
gds32.ddl oppure stai sbagliando il perrcorso del DB!

                    Il 22 Set 2004, 01:05,
=?ISO-8859-1?Q?=22=28=AF=60=B7=2E=B8_Bimbo_Super=B8=2E=B7=B4=AF?=
 =?ISO-8859-1?Q?=29=22?= <bimbo...@NONVOGLIOSPAMlibero.it> ha scritto:

Ti spiego dettagliatamente cosa accade:
A DESIGN-TIME: col componete TIBDataBase vado sul suo database componet
editor imposto i dati:
  connection : LOCAL
  Database: Path del database.FDB
  username: sysdba
  password: masterkey
premendo test => indipendentemente se rinomino o no fbembed.dll il risultato
è sempre la finestra con UNAVAILABLE DATABASE
A RUN-TIME: (con la pressione di un pulsante, prog. di prova)
  chiudo la connessione
  imposto il path:
        IBDatabase1.DatabaseName :=
        ExtractFilePath(application.ExeName) + 'DBMUSEUM.FDB';
  apro la connessione
  eseguo la query e il risultato (visualizzato su un edit) è influenzabile nel
seguente modo:
  1- se metto gds32.ddl di windows mi dà UNAVAILABLE DATABASE
  2- se metto fbembed.dll rin. in gds32.ddl funziona!!!
Xò ora sorge il problema:
se prendo l'exe+dll+fdb e li sposto su un altro computer (Nuovo di
formattazione con win 98)accade questo:
1- se la dll è fbembed.dll rin. in gds32.ddl mi dice che non trova la
gds32.ddl
2- se la dll è gds32.ddl di windows mi dà UNAVAILABLE DATABASE
QUALCHE SPIEGAZIONE A QUESTO???


> ti ho messo indifficoltà? :) ;)
+ che di mia difficoltà, imho, si tratta di un tuo problema.
Da console cosa succede?
AS

Anch'io ho avuto problemi simili.
Possono avere un paio di cause:
concomitante installazione di firebird e interbase, con conseguente non
corretto allineamento della libreria gds32.dll, oppure copie multiple della
medesima.
Quindi potresti cercare se in giro hai delle copie di gds32.dll o
fbclient.dll
Inoltre non sempre rinominare fbclient.dll in gds32.dll ha successo. 
Forse conviene provare a disinstallare firebird (e interbase, se lo dovessi
avere), rimuovere tutte le copie delle librerie, e reinstallare firebird
con l'installer, che generazione  di una copia di gds32.dll e collocazione
nella directory di system32
COn questo sistema ho risolto un problema analogo al tuo
Andrea


Si però significa che quando copio la dir. contenente solo exe + dll + db su
un altro pc sono costretto a installare il server firebird??? Io sto
cercando di slegare il tutto dal server!!!! e' questo il problema
principale!!!!!
ciao!!



:) spero che non ti sei offeso non era mia intenzione :) cmq in uno dei miei
post (mi pare dell 3.03 di notte) spiego dettagliatamente cosa succede. Se
hai tempo dagli un occhiata e dimmi cosa ne pensi!


 ciao!!
Dipende.....
soprattutto in applicazioni delphi dipende dai componenti che usi.
Per esempio, pe risolvere questi problemi ho usato i componenti zeos dbo
modificandoli: ho aggiunto anche un flag embedded per firebird, e cambiando
nella unit di definizione della connessione a fb il nome della libreria da
caricare.
(Purtroppo non ho con me il sorgente, ma se mi mandi una mail in privato
nel week-end vedo di recuperarlo)
Cmq basta cambiare la dichiarazione del nome della libreria da const a var,
e impostare una proprietà embedded che, in base al valore, cambia il nome
della libreria. A questo putno puoi anche evitare di rinominarla e sei
sicuro che non fa confusione con eventuali altre installazioni
Andrea


Grazie la mia mail è 
ata...@libero.it
 oppure 
atan...@wooow.it
. Mi faresti
un grande piacere se mi mandi il sorgente citato :).
Cmq da ultimi risvolti ho notato che copiando exe + dll + db su un computer
con xp (senza server installati) il prog. funziona(si collega al db), su
win98 non funziona (non si collega al db). Un ultima cosa se copio
exe+dll+db su un cd e lancio il programma mi dice:
"No Permission for read-write access to database [MioPath]"... mi sapresti
suggerire il modo di non darmi questa eccezione.
Grazie per la tua disponibilità
ciao
Gionata


 
Il db deve avere gli attributi di sola lettura.
Per farlo, usare un tool (cartella .\bin di fb) che ti permetta di fissare
l'attributo di sola lettura (del db, non del file *.fdb che fisicamente
contiene il db)
es:
gfix -user SYSDBA -password masterkey dbserver:/db/mydb.fdb -mode read_only
[preso dal ng delphiedintorni.it.database.firebird di M. Cantu)

 Grazie per la tua disponibilità
Semplicemente il CD è in *sola lettura*, quindi non puoi accedere al 
database perchè, anche solo aprendolo, i componenti che usi hanno necessità 
di scrivervi informazioni. A meno che - ma non so se è il caso tuo - non 
provi a specificare l'apertura "read only".
Idem se copi manualmente i files dal cd ad una cartella di Win9x. Il sistema 
non toglie automaticamente l'attributo di sola lettura.
Ciao,
Gianluca.