Newsgroup: it.comp.lang.delphi
Titolo: Grande problema ...

Ciao a tutti,
    la mia applicazione e' installata su un server interno che, fino a 
qualche tempo fa, non era collegata ad internet ed era limitata a 3 pc.
Ora il serverino e' diventato un buon server con diversi pc sotto, comunque 
non piu' di una quindicina, ma e' collegato a internet; inoltre solo 2 
utilizzatori sono autorizzati ad usare il programma.
Cosi', sebbene a qualcuno verranno i brividi, in origine il path di lavoro 
del programma era \\server\c\lavoro e li il programma faceva di tutto.
Per problemi di sicurezza, ho messo davanti un server, visto che uso le 
librerie dataweb ho usato il loro server.
Per la parte del db non ci sono avuti grossi problemi ma il programma 
scriveva su alcuni file di testo ovvero li creava al momento, li modificava 
e poi, nel caso li cancellava.
Ora, per non andare a condividere quella directory, come posso fare per 
scrivere quei file in quella directory ???
Inoltre al cambio di anno (da 2008 a 2009) il programma prendeva tutto il 
lavoro fatto nel 2008 e lo spstava nella nuova sotto directory 2008, 
azzerava i numeratori e ripartiva da 1. Ora come posso ottenere questo 
automatismo se la cartella non e' condivisa ???
I tecnici della dataweb dicono che il  loro server (tutti) permettono 
l'accesso ai db e basta, non permette la creazione di nuove directory.
Secondo voi, come posso fare per risolvere questi problemi ????
Ho pensato di portare tutto in db separati anche di un solo record per i 
numeri progressivi, per i nomi di chi ha fatto le richieste o per i vari 
lookup, ma non so come risolvere il problema della creaqzione della 
directory, e questo e' fondamentale perche' in ogni directory e' salvato il 
lavoro esegito in quell'anno.
Altro problema con il server della dataweb, i db con cui si lavora vanno 
inseriti manualmente e questo richiede un intervento manuale in loco, cosa 
poco fattibile !!!
Come fare ???
Grazie di tutto
Daniele
__________ Information from ESET NOD32 Antivirus, version of virus signature database 4346 (20090818) __________
The message was checked by ESET NOD32 Antivirus.
http://www.eset.com

Il semplice fatto che tutto dipende da una cartella condivisa è un
indicatore preciso di un dato di fatto:
La tua architettura è SBAGLIATA.
La cosa VERA  da fare è un refactoring, punto e basta, usando una
architettura che NON preveda l'uso di cartelle condivise.
In alternativa puoi mettere delle pezze, ma ricorda che la merda puzza
e se la rimescoli puzza ancora di piu...
1) Spostare tutto su un server che non è collegato al web
2) Modificare il programma facendo in modo che i files vengano creati
in locale e non sul server
A.
"La via breve è la via lunga"

 la cartella non e' condivisa ???
Ma la rete e' sotto dominio?
In dominio e' uno scherzo abilitare i permessi di scrittura a quel 
singolo utente...
Ciao
-- 
Morde

 locale e non sul server.
Questo non si puo' fare perche' chi ha l'accesso al programma lo puo' aprire 
da qualsiasi pc in rete.
Accetto qualsiasi suggerimento, anche quello di dire "supporto terminato".
Grazie davvero, Daniele 
__________ Information from ESET NOD32 Antivirus, version of virus signature database 4347 (20090819) __________


 utente...
Novita' di questa mattina .... chi di dovere ha praticamente dato 
l'autorizzazione di utilizzo quasi a tutti (8 su 10, di cui solo 2 in 
lettura gli altri 6 in lettura scrittura).
Quasi quasi mollo tutto ......
Quello che mi fa inca..... arrabbiare e' che io _NON_ sono un professionista 
di delphi, quello che ho fatto e' a livello personale, lo sanno ma stanno 
chiedendo troppo alle mie capacita'.
E' anche vero che si cresce :-))))
Grazie di tutto, Daniele 
__________ Information from ESET NOD32 Antivirus, version of virus signature database 4348 (20090819) __________


 da qualsiasi pc in rete.
.. e quindi..?
A.

 E' anche vero che si cresce :-)))
Infatti: e' per questo che non dovresti temere di riscrivere e 
riprogettare il tuo software con canoni piu' robusti e versatili.
L'importante e' che in azienda i tuoi superiori siano informati della 
portata della cosa, della sua durata, del suo valore, e del fatto che 
hanno giï¿œ ottenuto moltissimo utilizzando un software amatoriale 
scritto da un hobbista per scopi aziendali!
Credi in te stesso, continua a farlo, non perdere la fiducia in quello 
che puoi e magari vuoi diventare. ;)
Ciao
-- 
Morde

Concordo con quanto suggerito, quando possibile rivedere la struttura
è sicuramente la soluzione migliore.
In ogni caso, se il problema riguarda "prevalentemente" l'operazione
di inizio anno, perchè non obbligare l'amministratore di rete e/o un
responsabile autorizzato ad eseguire l'operazione di inizializzazione,
prima che ogni altro possa "usare" il programma?
Non si tratta di una soluzione scandalosa, semplicemente un
adattamento alla situazione che si è venuta a verificare, per
variazioni non dipendenti dal tuo controllo.
Potresti anche inserire un qualche blocco che impedisca di eseguire
operazioni nel nuovo anno fintanto che questa operazione non viene
eseguita.
Alessandro

Ciao a tutti,
     grazie per le risposte e per l'incoraggiamento ...
Ho risolto utilizzando una strategia oppressiva al massimo, lo so che non e' 
il massimo ma funziona !!!!
Ho detto addio alle cartelle condivise e tutto gira via serverdb.
Per i file di testo che venivano creati al volo e cancellati, ho creto tandi 
db quanti erano i file necessari, probabilmente uno spreco di risorse ma e' 
l'unico modo che ho trovato per non scrivere su directory condivise.
Tutti i file db che sono utilizzati dal programma terminano con l'anno in 
corso (per esempio articoli-2009.dat) e per il cambio anno ho fatto cosi':
- il programma parte controlla la data e verifica se ci sono i db nevessari 
per lavorare.
- essendo un cambio data i file non ci sono, allora controlla a ritroso fino 
al 2008 (anno in cui e' entrato in servizio il programma) e se li trova 
compare un avviso che l'anno e' cambiato e si deve procedere alla 
manutenzione annuale.
- chi di dovere va sul servere e lancia il programma "cambioanno" (che 
fantaia eh !?) che non fa altro che creare una directory dell'anno 
precedente (2009) e copia tutto quello che deve copiare, poi crea i nuovi db 
con il suffisso -2010, azzera i contatori negli altri db e termina.
- l'amministratore inserisce i nuovi db (2009) nella lista dei db visibili 
dal server.
Ora chi abilitato (quasi tutti) puo' leggere i db vecchi (2008 e 2009) e 
lavorare su quelli nuovi (2010) tramite server senza piu' directory 
condivise.
L'unico punto non troppo elegante e' che devo obbligare un responsabile a 
fare manutenzione all'inizio di ogni anno, e se questo e' in ferie non si 
puo' utilizzare il programma fino a che la manutenzione non e' stata 
eseguita. Gia' solo a parlarne ho visto brutte reazioni.
Infine, giusto per rendere responsabili anche chi di dovere, ho inserito 
(per ora e' attivo solo su un db secondario ....) un'opzione che forse non 
serve ma intanto c'e' ... ovvero la baffatura di "LA CARTELLA DEI DATABASE 
E' CONDIVISA ???" se la baffano il programma lavora con il vecchio criterio 
ed e' una scelta dell'amministratore e i cavoli sono suoi, se non e' baffata 
lavora via server con le procedure nuove.
Ancora una volta siete stati un aiuto prezioso, peccato non possa rendervi 
molto !!!
Grazie,
Ciao,
Daniele 
__________ Information from ESET NOD32 Antivirus, version of virus signature database 4349 (20090819) __________


 molto !!!
In un giorno sei passato dal "mollo tutto" al cambiare paradigma: non 
e' fantastico? :-D
Un saluto!
-- 
Morde

 fantastico? :-D
Il caldo sta facendo il suo effetto ....
Ormai sono alla frutta ..... bella freeeeescaaaaaa .....
Ciao,
   Daniele
__________ Information from ESET NOD32 Antivirus, version of virus signature database 4351 (20090820) __________
