52 messaggi dal 22 luglio 2007
Buongiorno a tutti voi...
Sono nuovamente qui nella speranza di avere una qualche "dritta" su un problema che mi è stato sottoposto.
La questione è la seguente:

da pagina asp net vengono caricati sul server dei file pdf. Se il caricamento va a buon fine, la pagina inserisce in una tabella di un DB access da uno a tre record a seconda se il file caricato interessa una o più categorie di utenti.

Tramite un'altra pagina gli utenti visualizzano la lista che li riguarda.
E' anche possibile, da parte dell'amministratore del sito eliminare i documenti dalla lista. C'è infatti una pagina che permette di cambiare un flag nel db che abilita o disabilita la visualizzazione del documento.

Il problema che mi è stato posto ora è la cancellazione dei file dal server.
Sarebbe sufficiente leggere il db e cancellare i file aventi il flag impostato su C (Cancella) ma in realtà per lo stesso file potrei avere situazioni diverse (ad esempio per la categoria di utenti 1 è impostato a C, per la categoria 2 sta invece a V - Visibile).
Io dovrei cancellare solo ed esclusivamente quei file i cui record presenti nel DB siano tutti con il flag a C, ossia risultino cancellati per tutte le categorie.
Vorrei quindi riuscire a tirare fuori dal db un lista con solo i nomi dei file aventi, per tutte le occorrenze presenti per ognuno di essi, il flag a C ignorando tutti i gli altri casi.

Il problema è strettamente SQL (credo) ma dato che sto lavorando in asp net (3.5) non c'è un qualche strumento che può aiutarmi?

Grazie a tutti.
674 messaggi dal 12 maggio 2001
www.idioteca.it
un po' contorto il giro (per quello che sono riuscito a capire).
Dato che a db non è detto che ci siano sempre 3 record, giusto? Invece di impostare un flag a C, non puoi rimuoverlo direttamente dalla tabella per ogni singola "categoria"? In questo modo alla fine di tutto fai una verifica che esistano ancora record legati al file che devi controllare e se non ci sono elimini il file.
Potrebbe essere una buona soluzione?
ciao
52 messaggi dal 22 luglio 2007
Buongiorno Giangi...
Parecchio contorto, il giro, si.

Riguardo alla tua idea, il problema è che non ho la possibilità di mettere le mani sulla pagina che genera il famoso Flag a C. Dovrei quindi riscriverla daccapo ma non ho la certezza di tutto ciò che fa...
Però la tua idea non è da scartare, anzi.
Con qualche modifica è perfetta.

Credo che scriverò una cosa di questo tipo:
1) Creo un dataset con due datatable.
2) nella prima datatable carico l'elenco dei file presenti nella cartella
3) nella seconda carico la tabella con i record ma con una query che escluda quelli con i flag a C
4) a questo punto, con linq, faccio un left join e carico un gridview (o qualcosa di simile) con i record della prima tabella che non hanno un corrispondente nella seconda.
5) scorrendo la gridview cancello i file.
6) A voler essere proprio bravi, potrei anche, durante la cancellazione dei file, effettuare la cancellazione dei record dal db usando come chiave il nome del file da cancellare... Ma per questo c'è tempo.

Che ne dici? Può funzionare?
Grazie.

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.