Newsgroup: it.comp.lang.visual-basic
Titolo: consigli su DB per gestionali

ciao a tutti
vorrei chiedere un consiglio:
devo sviluppare un gestionale in VB e devo scegliere un DB da includere nel
pacchetto di installazione.
Cosa mi consigliate? Access? o ce ne sono altri + adatti?
eventualmente, è possibile includere un DB SQL Server in un pacchetto di
installazione o è utopia pura?
grazie

 installazione o è utopia pura?
Scusa l'appunto, non prenderla male e dimmi se sbaglio, ma dalle richieste
che fai sembra che non hai la minima idea di
cosa sia un gestionale, almeno dal punto di vista sistemistico.
In primo luogo dovresti aver fatto un'analisi specifica per vedere quanto
meno il carico di utenza.
Acces ad esempio supporta al max 10 connessioni contemporaneamente. Perciò
se il tuo sistema
prevede + di 10 utenze contestuali Access è da abbandonare.
In secondo luogo, se stai sviluppando an applicativo professionale, dovresti
affidarti ad DB robusto
quale SQL Server 2K (che non può essere incluso in un pacchetto di
installazione), oppure ORACLE,
i quali tra l'altro prevedono specifiche procedure di backup,elemento
indispensabile in un gestionale:
prova ad immaginare la situazione in cui perdi tutti i dati degli ordini
clienti/fornitori o delle fatture.
Ci sono poi tutte le argomentazioni relative alla security: tipologie
utenti, privilegi, ecc.

 installazione o č utopia pura?
SQL-Server ha problemi di licenza.
Esiste un SQL-Server distribuibile, di cui MS fornisce un comodo setup, che
si chiama MSDE e trovi su 
msdn.microsoft.com
Altrettanto gratuito č My-Sql, ma lo trovo piů difficile da configurare.
Ciao
Alberto

 potrebbero piantarsi lasciando il DB in uno stato inguardabile?
Ohibò! Io che sono, notoriamente, sfigato, ho un centinaio di utenti in
Access, gestionale, anche in multiutenza. Tranne qualche collasso della rete
e qualche caduta di tensione che possono aver danneggiato un db, mai avuto
problemi. Non dico, sia ben chiaro, che Access è il massimo, ma vorrei dire
che si può usare con una certa tranquillità. IMHO, ovviamente. Comunque,
vecchio discorso...

 ha scritto nel messaggio
news:V_t%8.130281$vm5.4...@news2.tin.it...


 prevede + di 10 utenze contestuali Access è da abbandonare.
non metto minimamente in dubbio il tuo post e quello di albe v°, che anzi
condivido in pieno, ma su questo ng e mi sembra anche su icsd piu' di una
persona ha detto di usare _da parecchio tempo_ access con 40-50 utenti
contemporanei senza problemi.
che poi sia da suggerire access, tutt'altra cosa (anche se per quanto vedo
lo usano un bel po' di sw in giro, ed e' gia' un miracolo rispetto ai dbms
autoprodotti e proprietari e giu' di li'). ma se dai un'info cosi' critica e
secca....
ciao, j.


 anche msde deve lavorare in rete giusto?
MSDE *può* lavorare in rete. Non è obbligatorio :-))
Ciao
Alberto

 Altrettanto gratuito è My-Sql, ma lo trovo più difficile da configurare.
su icsd parlano benino anche di interbase, con la sua versione free (mi
sembra di aver capito) firebird.

 si chiama MSDE e trovi su 
msdn.microsoft.com
A me pare che non sia più scaricabile. Hai qualche indirizzo "certo"?
Grazie.

 problemi.
Certo.
Quando capita, al limite hai perso qualche dato, e basta prendere l'aereo,
andare in Patagonia, sistemare il DB, e tornare a casa.
A parte gli scherzi, il tema è già stato abbondantemente discusso.
Io resto della mia opinione:
1) Access non fa il Rollback da solo. Se c'è un problema a metà di un Update
di 1000 record, ed il client non è in grado di forzare un rollback, o se c'è
un bug nel client stesso che dimentica di forzare il rollback, mi vengono i
brividi al solo pensiero di come tu potresti ripristinare i dati.
2) Per compattare il DB occorre avere l'accesso esclusivo. In molte realtà
non si può richiedere agli utenti di non collegarsi, o peggio di scollegarsi
a metà di una estrazione che gira per ore.
3) Access in rete è terribile. Se il client ha bisogno di un record da una
tabella di 1.000.000 di record, l'intera query gira in rete.
4) Niente Stored Procedure
5) Il Backup deve essere gestito con attenzione (non si può 'copiare' il
file se non si è sicuri che non ci siano update in corso, altrimenti
potresti avere backup incoerenti)
Ciao
Alberto

 potresti avere backup incoerenti)
Mai fatto fare le copie quando si lavora, anzi, ovviamente, se c'è una
postazione attiva gli sparo una sirena che tutta l'azienda va a casa come se
fossero le 18. Mica siamo in internet.

 fossero le 18. Mica siamo in internet.
Quindi ti limiti ad uno/due backup al giorno.
Pensa che io con MSDE ne faccio uno ogni 10 minuti, su file e device diversi
per averne diversi in istanti diversi, e non me ne accorgo neppure.
Sinceramente ritengo il tuo approccio adatto ad un gestionale con 5 utenti.
Tu parli di un centinaio di utenti, e sinceramente stai correndo rischi non
indifferenti.
Visto che la conversione da Access a MSDE con ADO (se il SW è ben
disegnato), dura due giorni, valuta se non sia il caso di offrire al tuo
cliente un briciolo di sicurezza in più.
Alberto

 contemporanei senza problemi.
Se ricordo bene per la Microsoft Access è File-Server , quindi
utilizzabile da un solo client.
MSDE è client-server , utilizzabile da 4-5 client.
40-50 client con Access , mi sembra un rischio da far prendere per
iscritto al committente del lavoro.
giuseppeD
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

> Altrettanto gratuito è My-Sql, ma lo trovo più difficile da configurare.
non è vero... basta scaricarsi o un modulo o un ActiveX (che trovi anche sul
sito ufficiale) e sei già in pista.... inoltre con pochissima fatica ti crei
anche una interfaccia in php, così da avere sia un accesso sui client via vb
oppure un accesso ovunque tramite php  (chiaramente aggiungendo un sistema
di autenticazione).
Inoltre MySql è gratuito e open-source, quindi lo puoi aggiornare
gratuitamente e se per caso scoprono un bug non devi aspettare mesi (come
avviene invece per TUTTI i prodotti Micro$oft).
Chiaramente questo è un mio parere personale ;)


wrote:

Ti do' ragione, ma controlla bene la licenza di MySQL: non è proprio
gratuito-gratuito.
Inoltre, almeno fino alla nuova versione, non supporta molte cose che
MSDE o altri supportano. Resta cmq il fatto che è il più veloce...
Ciao
Aran

 utilizzabile da un solo client.
Pregooooooooo???!

 in un sistema con Access chi realizza questa tabella.
se sei in una situazione del genere, con una tabella _reale_ da 1 mln di
fatture (di prova, testato pochi giorni fa, a access ho fatto una query
sql/dao su 4 mln sulla lan di casa a 10mbit: tutto ok, e tempi accettabili,
tutto sommato, considerando che il 'server' e' un celeron rattoppato e con
alimentatore cigolante: 4 minuti. 47k righe), access l'hai abbandonato da un
pezzo.
in questo thread manca un parametro imho essenziale: e' un gestionale per
general motors o per un negozio monoproprietario e monosede di vhs ?
nel secondo caso, se non prevedi crescite (questo si' ti conviene averlo
chiaro subito), access/vb/dao basta e avanza e anzi e' prob la cosa migliore
(o delphi/interbase, o access da solo: ma su questi livelli). le ferrari in
piazza mazzini saranno pure belle ma si ingolfano.
ciao, j.

 iscritto al committente del lavoro.
questa e' una cosa assai sensata.
ciao, j.

 cliente un briciolo di sicurezza in più.
Certo, Albe, ma, come ho scritto nell'altro topic, non so dove scaricare
MSDE e/o dove cercarlo sui CD di VS, SQL Server 7 (rileggerò meglio il topic
dell'altro giorno che ne parlava)

 general motors o per un negozio monoproprietario e monosede di vhs ?
100 utenti contemporanei mi sembrano tanti :-)))
Alberto

 le ferrari in piazza mazzini saranno pure belle ma si ingolfano.
Grandioso! ;-)))

 100 utenti contemporanei mi sembrano tanti :-)))
se sono vhs porno, sono pochissimi, o i tempi stanno cambiando :P
ma chi ha parlato di 100 ? lupo ? vabbe', se lui si trova, ok, meglio per
lui. io una pensatina a dbms piu' solidi la farei. ma anche lui, mi sa. e'
un po' che posta su sqlserver...
ciao, a.

 fossero le 18. Mica siamo in internet.
Purtroppo non è sempre possibile ignorare una politica di backup durante
l'utilizzo dell'applicativo! Pensa ad applicazioni bancarie o similari.
Se si corrompe il DB cosa fai? Chiami la banca e chiedi a tutti gli
sportelli di sloggarsi per ripristinare il backup della settimana scorsa?
(Sto volontariamente esagerando le cose...)
Per questo genere di applicazioni la parola "RELIABILITY" è d'obbligo, il
che significa NON perdere neanche un dato ed in caso di problemi
ripristinare il più velocemente possibile lo stato di funzionamento.
La tua affermazione mi sembra un po' riduttiva.
Con questo non voglio dire che Access "fa schifo", tutt'altro è un database
nato e studiato per la realizzazione di applicazioni locali, anche
multiutente ma ragionevolmente piccole.
Ti posso assicurare che SQL Server ha dovuto "faticare" non poco per
raggiungere la potenza e flessibilità che Access forniva già nel lontano
1992 con la versione 1.0!!!
Ciao!!
--
Lorenzo Benaglia
UGIdotNET - 
http://www.ugidotnet.org

 Pregooooooooo???!
In questo momento mi trovo dal cliente.
Al casa cercherò tra le carte , spero di avere conservato o di trovare la
relativa documentazione.


 MSDE è client-server , utilizzabile da 4-5 client.
Sia Jet (il motore relazionale di Access) che MSDE sono tarati per
supportare 5-8 connessioni, dopo di che le performances si riducono
drasticamente.
Ciao!


 Beh, questa affermazione è un po' meno corretta ;-))
A mente fredda concordo pienamente.


 MSDE o altri supportano. Resta cmq il fatto che è il più veloce...
si è vero.... c'è la casa madre che ci "campa" sopra.... resta il fatto che
è gratis (mentre MSDN no) e che con poche modifiche puoi usarlo ovunque (VB,
Delphi, PHP, ASP, ecc.), è veloce e gira anche su pc "vecchi". MSDN costa
$$$, non è così flessibile e vuole troppe risorse rispetto a Mysql.

 solo client.
me lo sentivo.
se mai vengo allo smau, mi porto dietro un cane, j, il cui guinzaglio come
scudiscio deve andare benino, e un qualunque gatto (a nove code).
ma chi cacchio credono di essere ? dart biller ?

 MSDN costa $$$, non è così flessibile e vuole troppe risorse rispetto a
Mysql.
http://msdn.microsoft.com
Gratis!
MSDN vuole "troppe risorse"?! Un device (PC, Mac, Palm, Pocket PC...) con
browser :-))
Probabilmente ti stavi riferendo a MSDE?
Info:
http://www.microsoft.com/sql/techinfo/development/2000/MSDE2000.asp
Download:
http://www.asp.net/msde/default.aspx
Gratis anche quello.


 dell'altro giorno che ne parlava)
A parte i CD di Sql-server e credo di Office XP Pro, se ben ricordo l'ho
scaricato da non più di un mese da 
microsoft.com
.
Però ho dovuto girare un po' per trovarlo, e sinceramente non ricordo il
percorso completo.
Ciao
Alberto

 relativa documentazione.
Giuseppe, Access è sì un File-Server (e non un Cliente-Server), ma ti
garantisco che funziona anche con più clients contemporanei. Teoricamente
max 255. Praticamente (operativamente parlando) max 5/10, dipende da quanto
viene sollecitato.

 solo client.
Il nome, voglio il nome di quel "tecnico"!!!

 un po' che posta su sqlserver...
Voglio chiarire il possibile equivoco dovuto a mia superficialità: Quando
dico che ho 100 (forse più) utenti, intendo dire _clienti_, ciascuno è
un'azienda (piccola, media) diversa. Non parlo di 100 macchine attaccate in
una stessa rete... Credo che il più "grosso" abbia 7/8 macchine attaccate.
Ho, però, un solo (esatto) cliente importante in termini di dimensioni
(andremo su 20/30 postazioni in rete fra loro) e per questo sto utilizzando
(insomma...) ADO verso SQL Server.
Chiaro che, quando avrò concluso e "mi fiderò", inserirò nel mio gestionale
la terza possibilità (1=DAO+Access, 2=ADO+SQL Server), ovvero 3=ADO+MSDE per
le piccole utenze, ma lo so (me lo sento), sarà tardi...

 Non sei stato molto chiaro, IMHO :-))
Hai ragione e ho cercato di chiarire. Però (che bastardo che sono!) c'è
quell' "...anche in multiutenza"...


 1992 con la versione 1.0!!!
Guarda, ma guardami bene: Smack! Ecco, ti ho baciato (tiè)! Vero e,
purtroppo, il cliente si è abituato in un certo modo. Io sto combattendo,
ecco perchè bado spesso alle prestazioni e poco alla sicurezza (per adesso
almeno), perchè devo (!?) cercare di fornire prestazioni simili a quelle cui
si sono (li ho?!) abituati. Con ADO e SQL Server (che avranno pure 8000
vantaggi, non discuto), io dico che è impossibile. E lo dico con la
tranquillità delle prove concrete. Insomma, "i fatti mi cosano..."

 
http://www.asp.net/msde/default.aspx
Lorenzo, scusa, avresti mica anche un link (funzionate e attivo) per il
dowenload di MSDE per VB6 (non Net, insomma). Grazie

 ha scritto


Di solito leggo il nome della persona , con attenzione , solo se
l'etichetta poggia su persona femminile.
Per i maschi non ci riesco.
E' piů forte di me.


 tranquillità delle prove concrete. Insomma, "i fatti mi cosano..."
Probabilmente, esagero (anche se lo faccio solo per farti contento :-)),
SICURAMENTE le prestazioni con un singolo utente sono peggiori con SQL
Server (Ribadisco, non ci credo nel modo + assoluto) rispetto ad un flat
file (Pensa a quanti MINUTI ci metti a recuperare i clienti che si chiamano
Rossi e che hanno effettuato almeno 145 ordini nell'ultimo semestre... con
SQL Server, un paio di indici azzeccati ed una semplice SELECT, <ZAC!> ed
ecco il resultset).
Ad ogni modo già con 5 connessioni SQL Server SI MANGIA il flat file...
figurati con un numero superiore...
Ciao!


 figurati con un numero superiore...
Appunto, ho inteso bene. Probabilmente si tratta solo di trovare il
"compromesso" giusto fra "calo di prestazioni" di DAO+Access all'aumentare
delle richieste e "raggiunta stabilità prestazionale" di ADO+SQL Server
oltre un certo numero di richieste, nel senso che il primo calerà
progressivamente, anzi, drasticamente, il secondo, si spera, non dovrebbe
subire svenimenti per una/5 concorrenze in più. Dico bene?

 Dire che ADO "non è performante" è semplicemente un'affermazione
insensata!!
a parte che a volte le cose non sono sempre sensate, sono e basta, e quindi
le basse prestazioni di ado sono preoccupantemente percepibili -- a parte
questo, anche un modello puo' essere poco performante, non credi ? intendo:
strutturalmente inadatto a gestire alcune situazioni. un carro armato nella
jungla non e' _concettualmente_ adatto, e quindi ha basse prestazioni
_reali_.
sul ng il discorso e' gia' stato fatto molte volte: ado apre a piu' mondi
db, uniforma il codice, ecc. -- ma se uno deve gestirci i suoi mp3 (e deve
farlo con access che e' l'ipotesi al 99.99% piu' probabile), e' insensato se
usa ado, non trovi ?
vogliamo riformulare come gia' detto in vari post ? in determinate
condizioni (access indicizzato, monoutente o pochissimi utenti, in locale o
in lan), ado e' molto meno performante di dao. per quel poco che ho visto,
sottolineo il _molto_.
come in certi casi, in quelle stesse condizioni, puo' essere piu' efficace
una riga sql di un ciclo dao, anche se nel 80-90% dell'uso tipico di un db
gli indici migliorano (o migliorerebbero se potessero essere usati sul
serio) parecchio le prestazioni rispetto alle query.
--
ciao, j.
www.sundaysw.com

 Altrettanto gratuito è My-Sql, ma lo trovo più difficile da configurare.
CUT
brutta notizia che ti do albeV°...gratuito solo per usi NON commerciali!
Sigh!
(Wodka in pausa away!)

 brutta notizia che ti do albeV°...gratuito solo per usi NON commerciali!
Allora meno male che uso MSDE :-)))
Alberto

 Allora meno male che uso MSDE :-)))
ti aspettiamo al varco del nono utente :P:P
firebird con vb non l'ha provato nessuno ?
ciao, a.