It is currently 21 April 2025, 18:04 Advanced search

Gestione tipo dati BFILE in Oracle

Questo forum è nato con lo scopo di raccogliere le proposte di modifica di Instant Developer e discuterne insieme.

Gestione tipo dati BFILE in Oracle

Postby mazzoni1 » 4 March 2011, 15:30

Pensate di gestire il tipo dati BFILE Oracle in una delle prossime release di INDE ? Per me sarebbe utile se venisse gestito in maniera simile a come viene gestito attualmente il BLOB al limite in maniera trasparente all'utente indicando solamente, in fase di definizione del Tipo di dato che è un BLOB o un BFILE.
Sperando di vedere questa modifica in un prossimo futuro
Saluti
Tiziano
mazzoni1
 
Posts: 126
Joined: 4 March 2011, 15:21

Re: Gestione tipo dati BFILE in Oracle

Postby lucabaldini » 23 March 2011, 8:35

Ho provato a studiare come funzionano i BFILE e, se non ho capito male, sono file memorizzati su disco e "puntati" sul DB. Ma non potresti gestire la stessa cosa con un campo TEXT in cui scrivi il path del file? Quando carichi un BLOB tramite una videata di In.de cancelli l'upload, scrivi il blob dove vuoi tu e inserisci il path nel campo TEXT corrispondente. Tra l'altro, facendolo così, è anche più semplice "rilocare" i file dato che i percorsi sono memorizzati su DB come stringhe e quindi modificabili... Per esempio se devi spostare la cartella che contiene tutti i tuoi file basta fare una singola UPDATE che "riloca" tutti i percorsi.

Ti dico questo perché noi cerchiamo sempre di implementare funzionalità che siano supportabili su un numero elevato di database e il BFILE non sembra supportato da altri se non da Oracle. Inoltre immagino che un campo di quel tipo non sia la norma e non sia necessario gestirlo in tante videate in applicazioni web. Tra l'altro non è nemmeno difficile gestirlo manualmente.
User avatar
lucabaldini
Pro Gamma
Pro Gamma
 
Posts: 4990
Joined: 1 October 2010, 17:03
Location: Bologna

Re: Gestione tipo dati BFILE in Oracle

Postby mazzoni1 » 23 March 2011, 10:51

Grazie mille Luca per la risposta.
Pensavo anch'io di comportarmi come mi hai suggerito, l'unico volevo sapere come posso fare a trasformare il campo di tipo TEXT dove è memorizzato il path del file in modo tale che cliccandoci sopra mi apra il file ?
Grazie ancora per l'aiuto
Tiziano
mazzoni1
 
Posts: 126
Joined: 4 March 2011, 15:21

Re: Gestione tipo dati BFILE in Oracle

Postby lucabaldini » 23 March 2011, 11:23

Questo è facile. Puoi applicare al campo lo stile visuale Hyperlink e poi ci puoi collegare una tua procedura.
All'interno della procedura scrivi
Code: Select all
OpenDocument(PERCORSORELATIVO)

dove PERCORSORELATIVO è un path relativo all'applicazione. Se il file non è contenuto in una directory che fa parte dell'applicazione occorre copiare il file dentro ad una directory dell'applicazione e aprire quello.

Mi spiego con un esempio.
Facciamo finta che tutti i file siano salvati nella directory D:\FILES e l'applicazione web si trovi in C:\Program Files\Apache Tomcat\WebApps\MiaApplicazioneWEB

Ora non puoi scrivere OpenDocument("D:\FILES\Miofile.mp3") dato che Tomcat non servirebbe quel file poiché esterno all'applicazione web.
Però nella tua procedura puoi scrivere
Code: Select all
copyFile("D:\FILES\Miofile.mp3", Path() + "/temp/" + "Miofile.mp3");
addTempFile(Path() + "/temp/" + "Miofile.mp3")
openDocument("temp/" + "Miofile.mp3")


La prima riga copia il file dentro alla directory TEMP dell'applicazione web. La seconda dice che allo scadere della sessione quel file deve sparire. La terza riga la apre...

Questo è un esempio di ciò che va scritto nella tua procedura. Alcuni miglioramenti:
- occorre gestire il fatto che più utenti possano aprire lo stesso file... quindi non è corretto eliminarlo allo scadere della sessione.
- potresti controllare se il file non esiste prima di fare la copia... così risparmi tempo
User avatar
lucabaldini
Pro Gamma
Pro Gamma
 
Posts: 4990
Joined: 1 October 2010, 17:03
Location: Bologna

Re: Gestione tipo dati BFILE in Oracle

Postby mazzoni1 » 23 March 2011, 13:30

Grazie mille Luca sei stato chiarissimo e utilissimo come sempre
Tiziano
mazzoni1
 
Posts: 126
Joined: 4 March 2011, 15:21


Return to Proposte di modifica

Who is online

Users browsing this forum: No registered users and 18 guests

cron