Newsgroup: it.comp.lang.visual-basic
Titolo: Un dubbio sulle connessioni ADO...

Stamani...complice il fatto della stanchezza della settimana...mi assalgono
dubbi su dubbi...
L'ipotesi è di un prg monoutente...(al massimo 2/3 utenti)...
anzi no!
MONoutente...con ADO..ok..già mi voglio male...(dao è + veloce)
diciamo che visto che gira su un PIII800 e poi su un PIV 1.6 128ram (256) hd
20gb UATA100...il pc non è problema.
Visto che deve smanacciare come un pazzo fra almeno 3 Db..se non di + in
futuro.. (3 mdb...o 3 msde...no mdb..perchè poi il frutto si concretizza in
un quarto mdb e solo questo vien sparato in internet periodicamente...e uno
spazio web  con SQL costa troppo...è roba amatoriale)...
Io finora avevo sempre teorizzato...una sola conn...per tutto il prg.
Però adesso mi converrebbe...per ridurre le fonti di bug da
"stanchezza"...aprire e chiudere le conn tutte le volte che uso un
recordset. Mi chiedo e vi chiedo....sarà un impatto drammatico sulle
prestazioni del programma eh!??
...anche perchè avevo pensato di incapsulare il tutto in classi...per avere
un minimo di leggibilità del tutto..
avevo l'idea di fare una classe che di mestiere fa solo la conn e di
passarla ad un altra classe(o a + classi) che apre chiude etc etc il
recordset...ma mi sa che aumenta il carico di brutto...
le solite Sub e funct alla fine saranno la soluzione migliore mi sa!
 Accetto idee....mumble..mumble
:-)
p.s.
volete sapere che razza di prg è?
Il sabato e domenica il wodka pensa alle sue cose...beh insieme ad altri
amici...sta mettendo su un rpg(grezzo da far paura per ora)..on line...il
prg deve gestire gli archivi dei personaggi...degli oggetti...etc etc...non
credevo...ma alla fine vien fuori una cosa + complessa di un gestionale!
saluti!

...

Non si capisce niente del tuo messaggio.
Innanzitutto non c'è una domanda chiara.
Secondo, credo che a nessuno del ng gliene freghi qualcosa dei tuoi
commenti e dei tuoi progetti.
Mi sache sei uno smarrito.

 Mi sache sei uno smarrito.
ma tu guarda questo!!!
Hai ragione mi autosospendo!.....mi mando a fanbagno....wodka non posta piů
...!!...
:-(

 Hai ragione mi autosospendo!.....mi mando a fanbagno....wodka non posta
piů
Dai, Wodka, non te la prendere...
in fondo non ha tutti i torti: ci si capisce poco davvero sul tuo post!
Comunque: apri meno connessioni Ado possibili.
Tranne il caso della connessione internet, finchč lavori su Lan, le
differenze tra tenere aperto e chiudere/riparire sono sensibili.
ciao
ugo

 differenze tra tenere aperto e chiudere/riparire sono sensibili.
grazie ....la settimana era stata pesa ed invece che andare a fare un giro
ero ancora sul pc!
Ugo risolvimi un dubbio che è tanto che mi porto dentro...empiricamente lo
so. Tanto è vero che se è possibile uso una sola conn per tutto il prg
chiusa solo quando si preme sulla X o su Exit...
Però se ho una DllActivex che mi ritorna un recordset...o anche quando
faccio
Set NuovaConn= ApriConn(PathDB)
(apriconn è la mia funct che ritorna un adodb.connection)
che succede in memoria...ossia mi ritorna il puntatore alla conn aperta
dalla dll? e quindi NuovaConn è solo un puntatore allo spazio allocato dalla
dll alla conn?
O si apre una nuova conn (con allocazione di memoria etc etc) sul client in
qualche dir temp o simile?...e mi restituisce un puntatore a questa conn
"locale"?...
Secondo me dovrebbe essere simile ad un puntatore allo spazio della conn
sulla dll no?
Nel caso di 2 o + Utenti allora questi condividono la solita zona di memoria
e le soliti variabili di ambiente...e quindi in caso di multi utenza? (penso
alle transazioni)...come mai non succede casino...o come mai non aumenta la
spazio di mem allocato..(o forse aumenta per ogni client che usa quella
conn?)..
Se vuoi mi chiariresti sto discorso?
Grazie!
:-)

 conn?)..
???
variabili di ambiente? Che intendi?
transazioni: perchč non dovrebbero funzionare?
Secondo me stai facendo confuzione in un altro senso:
la dll activex gira in-process _sul_ client e restituisce al client stesso
una connection
aperta a un database.
Il tuo programma usa la connection esattamente come se la aprissi
all'interno del tuo exe.
In che senso quindi mi parli di multiutenza?
La tua esigenza č quella di usare la stessa connection con piů processi
sullo stesso client?
O di usare dcom e lasciare la dll di gestione sul server?
...
ciao
ugo

 messaggio news:oDIg8.32570$_u5.9...@news1.tin.it...
CUT
la dll la vorrei far stare sul server e servire la varie richieste di conn
da 3/4 client sul db(Access o MSDE)...ma quando si comincia a parlare di
Dcom...mi perdo un po.....per non paralre del Three-tier.....li mi perdo
proprio!

 proprio!
Ok.
Allora ti faccio una piccola obiezione:
Perchč vuoi distibuire dal server un oggetto tipicamente client come la
connection database?
Lascia il motore database al server e la gestione della connection
(anche a una dll, se vuoi) al client.
Eviti anche le (discrete) grane di Dcom.
ciao
ugo

 ugo
Vero...pero il command si...se voglio lanciare stored..e mi aspetto
recordset(ma non sempre)..la classettina di mezzo non ci vuole?..(va be si
puo fare anche in altri modi.... anche tutto in locale e poi far la
sincronia...ma io volevo imparare stocaz di elaborazione..ad usare sto
middle-tier)


Come preferisci.
Nulla ti vieta di usare tuttavia come strato intermedio un tier sul client.
Soprattutto in considerazione del fatto che, ripeto, stai usando oggetti
client.
La locazione server del tier inetmedio ha senso solo in situazioni in cui
_non puoi_ efficaciemente gestire la connection al database.
Penso, per esempio, al tipico caso di un componente che si interfaccia
lato server a un database e restituisce i dati da restituire a un browser
client
strutturati come xml a iis...
Ma, ripeto, in situazioni lan non ha molto significato far fornire al server
anche
questo tipo di funzioni.
ciao
ugo

 messaggio news:VaJg8.32663$_u5.9...@news1.tin.it...
CUT
Grazie Ugo!
:-)

 Grazie Ugo!
Prego. Spero di averti chiarito qualcosa anche se un pò di fretta...
Una sola nota:
Attenzione che tutto il discorso verteva sulla fornitura di _servizi di
connessione_
Ben diverso può essere il caso in cui ad un componente server viene delegata
 parte della _logica applicativa_
Vedi in questo caso il tipico esempio del componente intermedio che fornisce
al client  un substrato intermedio di gestione: la logica aziendale.
In questo caso:
- il client gestisce la sola interfaccia utente
- Il middle-tier gestisce la logica applicativa
- Il database gestisce lo storage fisico dei dati.
Con mille e mille sfumature e varianti...
ciao
ugo

 ha scritto nel messaggio
news:a60hgk$agtmr$1...@ID-96367.news.dfncis.de...


 saluti
me.forecolor = vbred...  :-)
grazie
ciao
ugo