Newsgroup: it.comp.appl.access
Titolo: ADO Stream + BLOB SQL Server + cartella temporanea

Rileggendo un thread di fine aprile ho voluto approfondire il tema della 
protezione dei documenti mediante il loro salvataggio in un campo BLOB si 
SQL Server.
Come evidenziato da Alessandro Baraldi, si riesce, ad esempio, a memorizzare 
un documento Word in un oggetto BLOB mediante l'utilizzo, ad esempio, dell'oggetto 
Stream di ADODB.
Parimenti, si riesce a leggere il documento ed aprirlo in una finestra di 
Word.
Dall'analisi di questo approccio, mi sono posto alcuni quesiti e li rigiro 
a voi:
1) questo approccio implica necessariamente il salvataggio del documento 
Word in una cartella del file system; in questo modo l'utente potrebbe provvedere 
a copiare il documento dalla cartella temporanea ad un altra (anche si già 
aperto in una sessione si Word). Che voi sappiate, non c'è modo di fare lavorare 
Word con un oggetto che si trova invece in memoria?
2) L'utente che si trova davanti la finestra di Word può scegliere di salvare 
una copia del file su un altro percorso, magari una chiavina USB. Come fare 
per evitare questo in un ambiente piccolo dove non esistono Active Directory 
et similia?
3) Se da Access utilizzo l'automation per aprire il documento Word recuperato 
in qualche modo, in che modo posso sapere se l'utente ha chiuso il documento 
che la mia procedura gli ha aperto automaticamente?
Infine, se qualcuno poi ha realizzato una procedura che gestisce documenti 
di vario genere in campi BLOB di SQL Server e volesse rendere disponibile 
il codice alla comunità, sarebbe una cosa molto gradita (ovviamente dal sottoscritto 
in primis).
--
PBsoft di Gabriele Bertolucci
www.pbsoft.it
skype: pbsoftsolution





[Risposta]
No, che io sappia, sempre abbia capito bene..!
Si potrebbe però usare un RichText e mostrare il contenuto RTF...!
2) L'utente che si trova davanti la finestra di Word può scegliere di
salvare
una copia del file su un altro percorso, magari una chiavina USB. Come
fare
per evitare questo in un ambiente piccolo dove non esistono Active
Directory
et similia?
[Risposta]
Non sono certo di aver capito, ma io mi creo una Temp e salvo il
Documento
li...!
La cartella è nascosta con il "$", poi cancello il doc quando viene
chiuso...!
3) Se da Access utilizzo l'automation per aprire il documento Word
recuperato
in qualche modo, in che modo posso sapere se l'utente ha chiuso il
documento
che la mia procedura gli ha aperto automaticamente?
[Risposta]
Se usi l'automazione da Office 2000 se non sbaglio(io ho 2002 e sono
certo) l'oggetto
espone la proprietà Hwnd quindi su Timer con l'Api IsWindow testo
l'Handle.
Altrimenti, quando usavo A97 ricavavo l'Handle passando la Caption
della finestra
e poi sempre su timer controllo che esista.
Infine, se qualcuno poi ha realizzato una procedura che gestisce
documenti
di vario genere in campi BLOB di SQL Server e volesse rendere
disponibile
il codice alla comunità, sarebbe una cosa molto gradita (ovviamente
dal sottoscritto
in primis).
[Risposta]
La gestione dei Blob che ho è quella che trovi nel sito comune, ma è
fatta con
DAO per SQL 6.5 che aveva anche problemi di SIZE per l'appendchunk, ho
usato per un progetto ADO per JET tramite l'appendChunk e mi pare
decisamente meglio, mi sembra banale, mentre ho solo fatto un piccolo
test con gli stram ADO ma il codice non l'ho mai sviluppato.
Ciao
@Alex

 l'Handle.
Ok.


Le cartelle il cui nome termina con un dollaro dovrebbero essere
nascoste
a livello di condivisione di rete, mentre se apri una finestra di
Esplora
Risorse le vedi senza problemi.
Giusto?
In locale si non serve il "$", ma basta crearla con attributo
nascosta...!
Ovvio che volendo .........
Ciao
@Alex