Newsgroup: it.comp.lang.visual-basic
Titolo: rimuovere immagini da un database

Ciao!
stò creando una rubrica che salva i dati in un database.
Tra i vari campi c'è anche una picture box che mi permette di inserire una 
foto del contatto.
Il problema è che non riesco ad eliminare l'immagine dal database.
se uso il seguente codice per rimuovere l'immagine:
Me.FotoPictureBox.Image = Nothing
e questo per aggiornare il database:
Me.Table1TableAdapter.Update(Me.RubricaDataSet.Table1)
l'immagine viene effettivamente rimossa dalla picture box ma le dimensioni 
del database non diminuiscono, quindi ne deduco che il file di mmagine si 
trova ancora dentro al database (rubrica.mdf)
Ciò è un bel problema perchè il database in poco tempo diventerebbe enorme!
Sapete consigliarmi come fare? Sono ancora alle prime armi quindi se nn sono 
statio molto chiaro vi prego di perdonarmi!
Grazie
Andrea

 trova ancora dentro al database (rubrica.mdf)
Non è che devi compattare e ripristinare il DB?
Con firebird la dimensione rimane allocata, ma la utilizza lui per i nuovi
dati.
-- 
DBMS Firebird
VB6 + Ado

dall' estensione del file preunmo che usi SQL server... e ha ragione a dire
che la dimensione del file MDF non cambierà, in effetti non creod che sia
possibile che automaticamente diminuisca (a meno di non fare delle
schedulazioni di compattazione), al max lo spazio liberato verrà
automaticamente utilizzato per nuovi dati. Se questo ti porta a un dispendio
enorme di Mb, l'unica soluzione credo sia un job da fare nei momenti
inutilizzati (tipo la notte) che faccia un shrink del DB.
"Andrea [Work]" <nos...@invalid.invalid> ha scritto nel messaggio
news:10a5dnd9ut829.597leshje1u0$.dlg@40tude.net...



Ma poi chi te lo fa fare di tenere delle immagini sul db, mettici solo
il link all'immagine e, nel tuo programma, carichi l'immagine dal link.
Leggero leggero, rapido ed indolore ;)

 trova ancora dentro al database (rubrica.mdf)
Scusa eh?
Ma tu ti affidi alla dimensione del file per sapere se un dato è presente o 
meno nel db?
E guardare cosa c'è nel campo? ;)
Ciao 

 Ciò è un bel problema perchè il database in poco tempo diventerebbe enorme!
Questo è del tutto normale.
Sql-Server alloca spazio per i file MDF e LDF, ma non lo rilascia.
Cioè, se la tua installazione di Sql-Server è impostata per aumentare 
di 10MB alla volta, il file mdf passerà da 10 a 20 a 30 ecc...
Poi tu cancelli della roba, Sql marca come eliminato il dato, ma il db 
resta di (ipotesi) 1GB. Solo che internamente lo spazio è disponibile, 
quindi quando inserirai cose nuove, Sql-Server non avrà bisogno di 
allocare nuovi blocchi da 10MB, perchè userà lo spazio già allocato.
Diciamo che, se inserisci e rimuovi periodicamente dei dati, il db 
dovrebbe tendere asintoticamente ad una dimensione 'a regime'.
La stessa identica gestione la utilizza per la RAM (proprio per questo 
una buona installazione di Sql-Server è su una macchina dedicata, ma mi 
rendo conto che non sia sempre possibile).
Considera che Sql-Server gestisce, senza fare una piega, file di dati e 
di log di svariati GB, tabelle di milioni di record, ecc...
Preoccuparsi delle dimensioni del file di dati, o della Ram, è l'ultimo 
dei pensieri, con questo strumento.
A meno che tu non abbia dei dischi oramai pieni.
Ciao
Alberto
-- 
Henry David Thoreau: L'uomo è tanto più ricco quanto meno costano i 
suoi piaceri.