Newsgroup: it.comp.software.database
Titolo: Firebird, problema database non leggibile

Ho creato con Firebird 1.5.2 un database di prova con una tabella contenente
tre campi, id_articolo, descrizione, prezzo.
Sul disco fisso dove e' memorizzato il database restano circa 200 Mbyte
liberi.
Creo tre miniprogrammi che sparano via odbc delle Insert per riempire la
tabella di prova.
Dopo un po di tempo lo spazio disco viene esaurito e tutto si pianta, e fin
qua tutto normale.
Ora vorrei tentare di far ripartire il database e rend3erlo usabile, dopo
aver liberato un po di spazio sul disco, dopo aver fermato e riavviato il db
server, dopo aver eseguito uno sweep, mi aspetterei di poter accedere al db
ma purtroppo non e' cosi.
Mi viene segnalato un errore:
ISC ERROR CODE:335544344
ISC ERROR MESSAGE:
I/O error for file "E:\FIREBIRD\DATA\PROVA.FDB"
Error while trying to read from file
Fine del file.
Vorrei riuscire a leggere almeno i dati che sono stati scritti
correttamente, come posso fare?
Attenzione, non e' che quesi dati mi servano, e' che vorrei sapere cosa fare
in caso di reale necessita', capire quindi se anche in queste evenienze
Firebird puo' permettersi di continuare a lavorare oppure no.
Grazie e ciao
RobertoA

 correttamente, come posso fare?
Personalmente ho rinunciato ad usare Firebird come database personale.
Precisiamo pero` una cosa: non ho rinunciato perche` sia un cattivo
database ma perche` e`, secondo me, mal gestito e seguito dai curatori
(documentazione veramente scarna, bug che non vengono risolti, poco
interesse in generale...)
Henryx

 poco interesse in generale..
mai come ora Firebird sta suscitando in notevole interesse,
(vedi il sondaggio su OSDir: 
http://osdir.com/Poll-31results.phtml
)
in generale si tende ora a comparare sempre piu' spesso
mySql, Firebird e PostgreSQL, mentre in passato Firebird
non era considerato, normalmente non ha molto senso fare
confronti essendo tutti ottimi prodotti, in quanto a caratteristiche
Firebird e PostgreSQL somigliano molto piu' ad un RDBMS
rispetto a mySQL, e hanno anche licenze piu' permissive,
mentre mySQL ha una licenza di cui ho letto varie interpretazioni,
ma che non ho ancora capito, ma certo è un prodotto che per una
classe di applicazioni non ha rivali. Un paio di articoli che secondo
me meritano di essere letti:
http://tinyurl.com/a94b6
http://tinyurl.com/7cdd3
-- 
Ciao!
Marco Kregar
marco....@FirebirdSQL.it
www.FirebirdSQL.it
"over the bench the goat sings, under the bench the goat dies"

 Firebird puo' permettersi di continuare a lavorare oppure no.
http://www.esys.it/download/FirebirdSQL.it%20Diagnosi%20e%20riparazione%20dei%20database%20corrotti.PDF
http://www.ibphoenix.com/main.nfs?a=ibphoenix&page=ibp_db_corr
appendice:
se col gfix non riesci ad ottenere un db di cui riesci a fare senza errori
un backup e restore allora ti rimane l'opzione di trasferire tutti i dati
salvabili in un database vuoto.
1. estrai i metadati dal db corrotto e crei un nuovo database vuoto e
pulito
2. copi i dati dal database corrotto al database vuoto usando: ibdatapump
(
http://www.clevercomponents.com/products/datapump/ibdatapump.asp
) o fbcopy
(
http://fbexport.sourceforge.net/fbcopy.html
)
ovviamante, essendo il db corrotto, qualche record non sara' copiabile.
ciao

 molti di quelli marginali, a quali bug ti riferisci?
Devo fare una precisazione: parlavo dei bug degli strumenti a corredo, e
non del db (che, tra le altre cose, non mi ha mai creato alcun problema).
Nella fattispecie, mi riferivo ad un bug del driver JDBC che io stesso ho
segnalato quasi un anno fa' e che ancora non e` stato corretto nonostante
fosse giudicato un bug semplice. Per quanto riguarda il poco interesse,
era rifrito in parte all'esperienza che ho avuto con gli sviluppatori (che
sono coloro a cui mi riferisco maggiormente nel mio precedente post),
 ed in parte alla cerchia di utilizzatori (che sembrano per lo piu`
interessati a farsi i fatti propri piuttosto che condividere le proprie
esperienze con gli altri utilizzatori di Firebird, cosa che non succede
invece con SQL Server, Oracle, PostgreSQL, MySQL...). Infine, per quanto
riguarda la documentazione, per SQL Server, Oracle, PostgreSQL e MySQL si
trovano documentazione ufficiale, documentazione non ufficiale, HOWTO,
articoli, libri e chi piu` ne ha ne metta. Per Firebird, invece, oltre
alla documentazione ufficiale e qualche libro si trova poco o niente
(certo, che poi la documentazione ufficiale dovrebbe essere il primo punto
di riferimento mi sta bene, ma molte volte altri tipi di documentazione
fanno parecchio comodo)
Henryx

 fosse giudicato un bug semplice. Per quanto riguarda il poco interesse,
strano, lo sviluppatore e' sempre disponibilissimo e rapido a rispondere.
se e' rimasto li' deve essersene dimenticato. dopotutto non c'e' un sistema
di segnalazione bug.
una volta ho segnalato un bug, nel giro di una mattinata si e' fatto
mandare un test case che lo riproducesse e ha riconosciuto il problema e,
in generale, l'ho sempre visto lavorare cosi'. addirittura annuncia in
anticipo i periodi in cui va in ferie e non e' disponibile sulla mailing
list.

 di segnalazione bug.
Ti assicuro che il bug c'e` ancora. Nella fattispecie, si tratta di un
problema di estrazione dati da una colonna di tipo CHAR(1) (il driver JDBC
va in eccezione restituendo il messaggio Data Truncation) e, tra le altre
cose, ho postato un esempio semplice semplice che permettesse di replicare
il problema. Eppure il bug e` ancora li. Certo, devo dire che
probabilmente potrei correggerlo da solo (se ne avessi tempo :/ ), pero`,
visto che e` stato giudicato un bug semplice da correggere, e che ancora
oggi e` presente, mi sembra che vi sia un comportamento menefreghista da
parte degli sviluppatori
Henryx
P.S. tanto per chiarire, non vi e` solo il bug da me riscontrato tra
quelli rimasti in attesa di essere corretti. Inoltre, il bug tracker di
Sourceforge permette di definire quali sono i bug corretti e quali invece
sono ancora da correggere

 sono ancora da correggere
per quel che ho visto il bug tracker serve solo per bug nelle versioni
stabili di firebird, non del driver jdbc. poi c'e' il field-tast bug
tracker per le versioni devel. non mi sembra ce ne sia uno specifico per il
driver jdbc. io personalmente ho sempre visto segnalare sulla mailing list
specifica.