Gstire foto con applicazione vb.net tramite databasase access 2000

lunedì 07 settembre 2009 - 09.23

basicdany Profilo | Expert

Ciao, a tutti, o necessita' in un applicazione scritta in vb.net che accede ad un database in rete, di archiviare delle foto e di farle vedere ogni volta che si pigia su un pulsante.
Il problema grosso e che il sistema e composto da 7 pc in rete, di cui un server dove risiede il db access 2000, i 6 pc client acceddono al db in rete con percorso di rete \\pc\server\c\db.mdb, come POTREI GESTIRE L'INSERIMENTO DELLE FOTO SENZA APPESANTIRE IL DB CHE GIA ESISTE, PENSAVO DI UTILIZZARE UN DB A PARTE SOLO PER LE FOTO,COME POSSO REALIZZARE QUESTO IN MODO CHE OGNI PC CLIENT POSSO VEDERE LA LE STESSE FOTO DEGLI ALTRI PC, ANCHE IN CONTEPORANEO?

GRAZIE A TUTTI

HavanaMan Profilo | Junior Member

Ciao,

invece di mettere le foto in un db (tanto più se access) metti le foto in uno share del server a cui tutti hanno accesso...

eviterai di avere un database che scoppia dopo 100 foto...e poi si sa access non è proprio che si gestisca bene ad un certo punto di MB riempiti...

ciao
Luca

e.disanto Profilo | Junior Member

Anche secondo me dovresti seguire le indicazioni di HavanaMan, metti tutte le foto su di una cartella condivisa sul server a cui tutti gli utenti hanno accesso, e sul DB Access memorizzi per ogni foto soltanto il percorso in cui si trova...

Ernesto di Santo

basicdany Profilo | Expert

ciao, il problema non e cosi semplice, infatti prima di scrivere a questo forum e proprio quello che avevo fatto, ho dovuto cancellare tutte le procedure al programma e ritornare indietro.
Il fatto e CHE OGNI CLIENT (SONO 7 PC) DEVO POTER INSERIRE LE SUE FOTO, LE FOTO DEVONO ESSERE VISTE DA TUTTI I CLIENT, SERVER COMPRESO,OGNI QUALVOLTA SE NE FA RICHIESTA CON UN PULSANTE, QUINDI SE IL CLIENT1 ESEMPIO INSERISCE LA FOTO DEVE ESSERE TRASFERITA SUL SERVER IN AUTOMATICO VIA CODICE, NON MANUALMENTE PER POTER USARE IL PERCORSO DELLA FOTO UGUALE A TUTTI I CLIENT.

PENSAVO DI USARE UN DB SQL SERVER PER RISOLVERE QUESTO PROBLEMA, COSA MI CONSIGLIATE?

HavanaMan Profilo | Junior Member

Ma non c'è nessun problema, quando un utente carica una nuova foto via codice la copi dal suo pc alla location ove sono storate le foto (location comune a tutti)

poi quando uno va ad interrogare con il tuo programma una foto quest'ultima viene presa dallo "spazio comune"

lo spazio comune sarà fisso (nel caso puoi metterlo in una variabile cosi se cambia il link devi cambiare solo una variabile)...

qual'è il tuo dubbio?

pf scrivi in piccolo è fastidiosissimo leggere un testo intero scritto con il caps lock...e su internet equivale ad urlare.

alexmed Profilo | Guru

Ciao Daniele
>ciao, il problema non e cosi semplice, infatti prima di scrivere
>a questo forum e proprio quello che avevo fatto, ...

Cioè? Come procedevi?

>Il fatto e CHE OGNI CLIENT (SONO 7 PC) DEVO POTER INSERIRE LE
>SUE FOTO, LE FOTO DEVONO ESSERE VISTE DA TUTTI I CLIENT, SERVER
>COMPRESO,OGNI QUALVOLTA SE NE FA RICHIESTA ...

La richiesta sulla base di cosa viene fatta? Tramite una descrizione oppure devi vedere tutte le foto contemporaneamente (magari in un DatagridView)??

>CON UN PULSANTE, QUINDI
>SE IL CLIENT1 ESEMPIO INSERISCE LA FOTO DEVE ESSERE TRASFERITA
>SUL SERVER IN AUTOMATICO ...

Puoi usare "My.Computer.FileSystem.CopyFile(sourceFileName ,destinationFileName)"


>VIA CODICE, NON MANUALMENTE PER POTER
>USARE IL PERCORSO DELLA FOTO UGUALE A TUTTI I CLIENT.

Questo dovresti averlo già: \\pc\server\c\ oppure \\pc\server\c\images

>PENSAVO DI USARE UN DB SQL SERVER PER RISOLVERE QUESTO PROBLEMA,
>COSA MI CONSIGLIATE?

Un BD SQL SERVER

...

alexmed

basicdany Profilo | Expert

ciao, come ti dicevo salvavo il percorso in un campo nel db, ogni client aveva la possibilita' di inserire piu foto, il problema e come fare a trasferire la foto sul server, e quando le foto diventano tante il db diventa molto grande.

Quindi in coclusione cosa mi consigli di usare un db sql server e copiare i file sempre sul server?

alexmed Profilo | Guru

Ciao
Io darei scacco matto in tre mosse:

1) Salvo nel db il percorso del file ( \\pc\server\c\images)
2) Crei una colonna Thumbnails per una Anteprima (http://www.dotnethell.it/tips/ThumbnailsVBNET.aspx) da visualizzare su una DataGridView che punta al file originale (da visualizzare in una PictureBox)
3) Quando copi le foto ( \\pc\server\c\images\) le ridimensioni (800 X 600), ed in questo modo preservi lo spazio sul server

Poi dipende dallo spazio che hai a disposizione sul server.
Considera che un jpg 800 X 600 mediamente non dovrebbe superare i 100 Kb

Ciao

alexmed

HavanaMan Profilo | Junior Member

Addirittura potresti evitare di salvare sia il percorso sia il nome del file, il percorso è fisso nel programma o come settaggio, e per le foto puoi usare il metodo di rinominarle una volta "caricate" e rinominate stile foto_ID.jpg dove ID è l'id univoco della tabella.

Ovvio che se le foto possono essere caricate in più posti diversi o alltro il discorso può leggermente cambiare (ma nemmeno più di molto)

ciao
Luca
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-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5