Salvare immagine in sql server

martedì 18 settembre 2007 - 11.03

trinity Profilo | Guru

Salve ragazzi,
in un db sql server 2005 devo salvare in una tabella l'immagine dei un logo, voi mi consigliate di salvare il percorso della posizione dell'immagine in windows oppure si può salvare direttamente l'immagine?
quale è il metodo migliore?
tenete presente che ci saranno molte immagini da salvare.

Ciao
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com

MarKonE Profilo | Guru

Se le immagini sono molte personalmente opterei per il salvataggio del link.

In questo modo naturalmente eviti di appesantire il Db.

Ciao!
My Blog... http://blogs.dotnethell.it/Mark/

alx_81 Profilo | Guru

>Salve ragazzi,
Ciao!

>in un db sql server 2005 devo salvare in una tabella l'immagine
>dei un logo, voi mi consigliate di salvare il percorso della
>posizione dell'immagine in windows oppure si può salvare direttamente
>l'immagine?
>quale è il metodo migliore?
Diciamo che sono metodi differenti e la scelta dipende dal tuo sistema..
Mi spiego..
se tu preferisci mantenere snello il db e nella fattispecie la tabella in questione, ti conviene tenere sul db solo il percorso.
Al contrario, se tu puoi ignorare il peso della tabella e i record non saranno tantissimi, puoi anche salvare su db in un campo denominato BLOB (Binary Large Object).
Considera che nel primo caso la gestione è un po' più macchinosa, poichè devi tenere presente tante altre cose, tra cui la correttezza dei percorsi, l'esistenza dei file, lo stato della periferica su cui salvi. Inoltre per mantenere l'atomicità dell'operazione devi faticare un pochinio di più..

Indicativamente, se hai pochi record, puoi salvare su db utilizzando BLOB..

ma il tuo molti a quanto equivale? e il peso indicativo di ogni logo a quanto ammonta?


>
>Ciao
>Cirillo Fabio
>www.wondernet.biz
>fabio@wondernet.biz
>http://blogs.dotnethell.it/fabiocirillo/
>http://wnetsoftware.blogspot.com

Alx81 =)

http://blogs.dotnethell.it/suxstellino

trinity Profilo | Guru


>ma il tuo molti a quanto equivale? e il peso indicativo di ogni
>logo a quanto ammonta?

Ma il discors e che le immagini possono variare perchè il programma è per un'agenzia immobiliare pertanto dipende da numero di case e da quante foto vuole inserire nel db, certo il discorso che i percorsi delle foto sia sempre gli stessi non posso gartantirlo, quindi il fatto di salvare l'immagine nel campo del db è corretta. Calcola che le immagini saranno max 640x480 rigorosamente in formato jpg.

A proposito io non ho mai salvato un'immagine nel db ma quando faccio l'insert con la query sql devospecificare il percorso di dovre si trova l'immagine?

Ciao


>
>
>>
>>Ciao
>>Cirillo Fabio
>>www.wondernet.biz
>>fabio@wondernet.biz
>>http://blogs.dotnethell.it/fabiocirillo/
>>http://wnetsoftware.blogspot.com
>
>Alx81 =)
>
>http://blogs.dotnethell.it/suxstellino

Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com

alx_81 Profilo | Guru

>A proposito io non ho mai salvato un'immagine nel db ma quando
>faccio l'insert con la query sql devospecificare il percorso
>di dovre si trova l'immagine?
Avrai un'applicazione "intorno" al tuo db giusto?
Dovrai usare il tipo di dato text o image sul db.. e poi lato codice, dovrai creare un parametro di tipo Image sul command, valorizzato come un array di byte (tipicamente la lettura di un HTTPPostedFile)..

con sql se non erro puoi fare anche così:

INSERT Tabella (CampoBLOB) SELECT BulkColumn FROM OPENROWSET( BULK 'imagepath', Single_Blob)

Qui c'è un link utile
http://support.microsoft.com/kb/316887/en
>
>Ciao
>
>
>>
>>
>>>
>>>Ciao
>>>Cirillo Fabio
>>>www.wondernet.biz
>>>fabio@wondernet.biz
>>>http://blogs.dotnethell.it/fabiocirillo/
>>>http://wnetsoftware.blogspot.com
>>
>>Alx81 =)
>>
>>http://blogs.dotnethell.it/suxstellino
>
>Cirillo Fabio
>www.wondernet.biz
>fabio@wondernet.biz
>http://blogs.dotnethell.it/fabiocirillo/
>http://wnetsoftware.blogspot.com

Alx81 =)

http://blogs.dotnethell.it/suxstellino

trinity Profilo | Guru

ok adottiamo la prima ipotesi ossia salvare nel db il percorso dell'immagine...quindi io mi trovo a gestire questa cosa in una webform....quindi dovrei salvare il percorso remoto nel db e poi anche uplodare l'immagine, giusto?
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com

alx_81 Profilo | Guru

>ok adottiamo la prima ipotesi ossia salvare nel db il percorso
>dell'immagine...quindi io mi trovo a gestire questa cosa in una
>webform....quindi dovrei salvare il percorso remoto nel db e
>poi anche uplodare l'immagine, giusto?
Esatto, facendo attenzione a gestire bene la transazione e cercando di limitare le dimensioni di upload per evitare eccessivi lock sulla tabella interessata.
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5