Newsgroup: it.comp.lang.visual-basic
Titolo: ADO funziona male! (è un cesso)

Sto riscrivendo un mio programma in Ado, perchè mi sembrava di aver capito
che Ado è la nuova tecnologia ed è molto superiore a Dao, con Prestazioni
migliori etc..
A parte il fatto che è lentissimo, lo trovo veramente pieno di problemi e
non capisco come mai microsoft si ostini a spingerlo così tanto. Ado ha
grossi problemi con le griglie, tipo se uno non è d'accordo nell'utilizzo
delle stesse in modalità associata a controllo, inoltre sempre con le
griglie ha dei bachi un po' ovunque, a volte il refresh non funziona e altre
cosucce niente male, con Dao non ho mai avuto un problema.
Altra nota negativa è che non esiste il compact database, per compattare il
Db devo aggiungere un riferimento a GetEngine nei riferimenti, mentre Dao
l'aveva già incorporato dentro se stesso, inoltre ho sentito di altre
persone lamentarsi come me sia del fatto delle griglie che della lentezza.
Considerando che sono solo all'inizio mi sto spaventando un'attimo, nel
senso che potrei fermarmi quà e lasciare perdere con la "traduzione" visto
anche che non capisco proprio perchè dovrei perdere ore e ore di lavoro per
rendere un mio programma più lento e a rischio di "malghini", non so se
avete presente, quel tipo di malghini che dopo 2 settimane di notti insonni
nel tentare di risolvere un determinato problema o una routine che genera
errore, scoprite per caso che era un bug documentato sul sito della
microsoft e che per il momento non esistono soluzioni.
.-(
--
---------------------------------------------------------
Ruscelli David
    Ufficio E.D.P.
    Intesa Soc. Coop. a r.l.
www.intesacoop.com
--------------------------------------------------------

invece di criticare ADO, ragiona sui veri punti di forza, che di sicuro non
sono nè la velocità, nè la possibilità di fare il compatta/ripristina di un
database......bensì:
1) ADO ti permette di usare un'infinita di db diversi, senza cambiare il
codice che lo manipola
2) non puoi fare il compatta/ripristina per il semplice fatto che tu prendi
per buono che stai lavorando con Access, mentre in realtà non è
così.....(vedi punto 1)
3) io ormai è alcuni anni che uso solo ed esclusivamente ADO e mi trovo
benissimo; il passaggio da DAO ad ADO in effetti non è stato indolore a dire
il vero, però i frutti oggi li sento eccome. Un grosso programma, che prima
usava Access, oggi lavora tranquillamente sotto SQL Server e sto preparando
una versione per Internet, con stored procedure ottimizzate da tutte le
parti.........
4) se vuoi usare ADO devi programmare con la filosofia client/server, che è
l'ideale...........
5) se usi ancora griglie "compilate" automaticamente, sappi che in genere
non sono per niente affidabili e chiunque abbia un minimo di esperienza ti
dirà subito che è MOLTO meglio pilotare tutto da codice. Se non sei in
grado, o non l'hai mai fatto, o se credi di perdere tempo scrivendo lunghe
righe di codice, non sai cosa ti perdi in termini di prestazioni........
fine!!!!
ciao, e good coding!!!!!
--
Damiani Liborio Igor
idam...@hotmail.com
 - 
igor.d...@light.it
http://www.igordamiani.it
ICQ : 11847262

 wrote in message
a4e2vu$ri0$1...@fe1.cs.interbusiness.it...


 così tanto.
[cut]
Semplice. DAO è limitato ad Access che è un "giocattolino" (anche se
per molte cose può andare più che bene). Con ADO puoi passare ad un
altro DB senza dover cambiare il codice di una virgola.
Ciao.
--
BSD is for UNIX-lovers -- linux is for Windows-haters.

 righe di codice, non sai cosa ti perdi in termini di prestazioni.......
No, sono in grado, figurati...
non uso le griglie compilate automaticamente,  ma noto che molte non è
possibile popolarle solo da codice, ma funzionano unicamente in modalità
associata, le altre fanno cagare e rimane il fatto che hanno bug, danno
problemi.
Non hai notato (ad esempio leggendo su questo ng) di quanta gente abbia
problemi a popolare griglie con ado?


usare DAO ha sicuramente dei vantaggi......
usare ADO non ha indubbiamente degli altri.......
dipende dalla clientela.....dal tipo di lavoro.....ci sono un sacco di
fattori da prendere in considerazione!!!
Ciao!!!!

 ha scritto nel messaggio
news:a4e2vu$ri0$1...@fe1.cs.interbusiness.it...


 problemi a popolare griglie con ado?
Proprio perchè, come David ha chiaramente detto, la gente si ostina a
popolare le griglie con un binding ai dati, anzichè usare il codice.
Io faccio con Ado praticamente tutto, e i problemi me li creo con le mie
cazzate, mentre lo strumento in sè è effettivamente ottimo.
Non entro negli esempi, ma se pensi che i miei applicativi girano su Access,
Sql-Server, MySql e Oracle senza ricompilare, forse qualcosa di buono ce
l'hanno.
Inoltre, il fatto di astrarre di un livello dalla connessione al DB, dà
vantaggi immensi in termini di accesso concorrente e di rollback delle
transazioni.
Comunque, visto che c'è gente che usa textbox=5 anzichè
textbox.text=cstr(5), credo che molte discussioni siano quantomeno
sterili...
Alberto

 problemi a popolare griglie con ado?
CUT
allora fa cagare (uso termini tua) anche Left$ e la gestione delle
stringhe....fa fare PRRR anche la gestione delle matrici....Fa pena Jet...fa
pena Winsock....fa pena TUTTO vb......se leggi qui vedi un sacco di gente
che si lamenta....poi vai a vedere bene .....non sanno come usare
Replace.....non sanno dichiarare le variabili....non sanno usare un
database...non sanno cosa è SQL.....ADP per loro è il marito dell'ADA e così
via...
Considera che è molto + facile accettare che sia il programma che mi fa
sbagliare piuttosto che io sia ignorante!
Se programmi ESCLUSIVAMENTE con motore DB Jet "interfaccia" Access E non hai
necessità di fare pagine ASP su internet...tieniti il DAO
Per il resto ADO...anzi tra un po (speriamo tra molto po) 
ADO.NET
I clienti se sono intelligenti (ossia non micragnosi)...e sopratutto se sei
chiaro...sanno che per il tuo programma ci vuole un pc con queste XX
caratteristiche...se lo sanno...hanno voglia ad urlare...magari li vendi
anche il pc nuovo!...certo se fai un programma per "Ugo La trippa più buona
della Toscana"...beh!si raccatta tutto di questi tempi!

 popolare le griglie con un binding ai dati, anzichč usare il codice.
[cut]
Hai centrato perfettamente il punto.
ciao
ugo


Ehm... mi associo a tutto tranne che al nome della marca di trippa...
(a meno che sia effettivamente la migliore della Toscana!!!!  :-)  )
ciao
ugo

 popolare le griglie con un binding ai dati, anzichč usare il codice.
Veramente io volevo dire il contrario, io stesso per popolare una datagrid
in unbound ho avuto problemi e  quando ho chiesto sull'ng mi č stato
risposto che non si poteva, con relativo link a griglie molto potenti
disponibili su un certo sito(a pagamento).
Per il resto credo che dall'alto della vostra esperienza possiate anche
avere ragione.
a propo', non ho trovato sul sito comune un tutorial su COME POPOLARE VIA
CODICE STE CA%%O DI GRIGLIE!
potrebbe essere interessante inserirlo non credete?
Davide

 sterili...
io lo uso sempre, da sempre, e non ho _mai_ avuto un problema. se sara' il
caso di tradurre il codice e saro' senza i miei cari default
    if opCiccio then
    if chkControllo then
    lblCnt = cnt
ci pensero'. problemi invece ne ho avuti non pochi cercando di decifrare la
differenza di comportamento fra un campo inizializzato a "" e un campo null.
e dopo 5 anni ancora mi sfugge la profonda logica e il vantaggio di questa
raffinata distinzione concettuale.
ma per favore non tiratemi fuori che nel 2005 riciccio il codice ado del
2001. coi chiari di luna (specie borsistici) ms, nel 2005 avremo .web, o
.mars, e anche i programmatori, oltre agli utenti, _dovranno_ comprare nuovi
prodotti. dopo dao e ado, la combinatoria lascia ancora oda (
foscolo.net
 ?),
aod, oad... in ms non fanno solo scemenze, e' ovvio. ma la loro logica sta
diventando sempre piu' una logica di vendite, non di prodotto. cosa diresti
se rai1 o italia1 un mese si' e uno no ti costringessero a telefonare per
_accendere la tv_ ? c'e' un problema serio in questo, imho. molto piu' serio
dell'inseguire dao / rdo / ado / ado,net.
--
ciao, j.
www.sundaysw.com

     lblCnt = cnt
Qui, invece, non approvo.
Lo sfirzo richiesto per scrivere codice pulito senza
"scorciatoie" tipo le proprietą predefinite č davvero minimo.
In compenso la pulizia del codice e la sua riutilizzabilitą sono
molto migliori.
ciao
ugo

 CODICE STE CA%%O DI GRIGLIE!
Crei il recordset (lato client, sennò la datagrid non va) e lo assegni alla
datasource della grid.
ciao
ugo

 molto migliori.
questione di punti di vista. ( in senso tecnico :)
a me, proprio otticamente-graficamente, danno fastidio anche le linee di
commento. abitudine letteraria, forse. fatto sta che piu' bianco c'e' e piu'
colgo il senso delle parole.
    if optCiccio.value = true then
mi sconfonde, quasi quanto
    if optCiccio.value = true then
        ciao
    endif
che mi sto a chiedere mezz'ora perche' non c'e'
    if optciccio then ciao
e temo di non aver capito cosa succede. poi arriva il tacitiano lampo:
     se ciccio, ciao
:)
le poche volte che ho guardato dei pascal, son sempre stato male a leggere
    begin
vabbe' la didattica: ma se e' a riga 1, sarei oltremodo stupito ci fosse
    end
quanto ai commenti, preferisco quelli in blocchetti su cui ragionare prima
di partire a leggere il codice. quelli intervallati tipo:
    ' declare the db variable
    dim db as database
ad alzo zero, insomma, li usa d'altronde anche randy birch, per cui ci
saranno le sue ragioni :)
e' un po' come segnare i rientri negli if, for, while. non serve a un tappo.
ma serve... quando ne hai annidati 28 e al 28. endif ti manca un tabulatore,
eviti un debug... e' uno dei motivi per cui l'ultimo codice clipper lo
scrivevo con notepad. ci stanno molti piu' caratteri (e poi in una finestra
scrivevo, nell'altra compilavo e lanciavo :)
pero' ammetto che l'uso dei default e l'impostazione della pagina e' una
questione personale, e che lavorando in team sarei disposto a trattare (
specie sui commenti, sob :)
ciao, j.

 datasource della grid.
Mi sfugge il significato di lato client
però con il seguente codice la griglia NON si popola
Dim rsGriglia As ADODB.Recordset
Set rsGriglia = New ADODB.Recordset
rsGriglia.Open "SELECT NOME, COGNOME FROM DIPENDENTI ORDER BY NOME", cn,
adOpenKeyset, _
adLockOptimistic, adCmdText
Set Datagrid1.DataSource = rsGriglia
Datagrid1.Refresh
Cosa c'è che non va?
Ado forse?
mmmm....

 ovviamente fino ad un certo limite, di "pararti il cxxo"
Sottovaluti M$. Quelli se non ti convincono a cambiare spesso, magari
riscrivendo tutto, non mangiano. .NET (col suo 
ADO.NET
) è lì a dimostrarlo.
;-)
Ciao
*Roby*

per caso ho fatto un giro su msdn e premendo F1 ho scoperto che
Proprietà CursorLocation
adUseClient
Utilizza i cursori del client forniti da una libreria di cursori locale. I
servizi di cursore locale consentono in genere di eseguire molte funzioni
non supportate dai cursori forniti da driver. Utilizzando quindi tale
impostazione sarà possibile usufruire dei vantaggi offerti dalle funzioni
che verranno abilitate. Per garantire la compatibilità con le versioni
precedenti, è supportato anche il sinonimo adUseClientBatch.
adUseServer
Predefinita. Utilizza cursori forniti da driver o dal provider di dati. Si
tratta a volte di cursori molto flessibili che garantiscono una riservatezza
supplementare per le modifiche apportate da altri utenti all'origine dati.
Alcune funzioni del Microsoft Client Cursor Provider, quali i recordset non
associati, non possono essere simulate con i cursori del server, rendendo
quindi tali funzioni non disponibili con questa impostazione.
Ora mi è tutto Moooooooooooolto chiaro!
Ho aggiunto al codice, prima dell'apertura del recordset,  la seguente riga
rsprova.CursorLocation = adUseClient
Posto questo perchè sono convinto una badilata di lettori di questo ng  (i
newbie) non lo sanno e secondo me può essere utile istruirli, come nessuno
però ha fatto con me.
:-(
Davide

 ha scritto


 però ha fatto con me.
mmm, assolutamente senza voler polemizzare
(ho già visto un altro thread in cui il povero
Zanna (ebbene sì: "coccolo" anche lui!!!!)  deve vedersela con le solite
polemiche inutili...)
tuttavia: ti ho dato la soluzione.
Certo, sono stato conciso, ma d'altra parte in questi mesi ho poco tempo
per "riscrivere" ciò che già sta scritto sull'help...
Noto comunque che una veloce ricerca su msdn e/o google ti ha permesso
di chiarirti le idee.
E, spero, di chiarirle ad altri.
ciao
ugo
p.s. Attenzione che il "lato client" ha i suoi pregi ma anche i suoi
difetti:
vedi vari thread sull'argomento su google.


Che dire: si sa che mamma MS è più matrigna che altro.
Il problema, secondo me, è che sono talmente preoccupati di far sì che
_ogni_ loro prodotto possa uccidere la concorrenza che fanno elaborare
le specifiche dai commerciali anzichè dagli informatici...  :-(
(con buona pace dei commerciali)
ciao
ugo

 però ha fatto con me.
Se uno usa Ado e non si è studiato il significato di CursorLocation, credo
che poi non si possa lamentare dello strumento.
Prova a guidare la macchina senza sapere la differenza fra la prima e la
quarta.... :-))))
Alberto

 quarta.... :-))))
Però se con la macchina di scuola guida la prima volta che accendi i fari se
ne fulmina uno secondo me ti viene d'istinto pensare che ci sia qualche cosa
che non va, se poi tenti di accenderla e ti accorgi che ha dei problemi al
minimo, anche se magari ancora devi imparare ad usare bene il cambio ti
viene da pensare che quall'autpo sia un vero ....
Davide

 potrebbe essere interessante inserirlo non credete?
Bravo!! E anche ben dettagliato!

Marco75 ha scritto:

Mah, su msdn c'e' gia' scritto tutto quello che serve.
Se poi uno vuole usare griglie di terze parti, allora se le scelga ben
documentate ;-)
-- 
ciao, hal

 ha scritto


:)

 ha scritto nel messaggio
news:a4infu$tgq$1...@newsreader.mailgate.org...

Hai mai sentito parlare di spiegare argomenti in modo diverso per permettere
a chi non contempla perfettamente il tecnichese di msdn di capirle?
Spiegarle in un modo piu' semplice...
Con il tuo ragionamento non ha senso nemmeno che sul Sc ci sia il tutorial
su Ado, su come usare il componente MSCOMM etc...Tanto è tutto su MSDN! :-)
Se tieni conto che ad esempio per Ado e altri su MSDN c'è scritto tutto,
vita morte e miracoli, proprio su Ado c'è una sezione apposita chiamata
documentazione Ado ed è enorme.
Non avrebbe nemmeno senso di esistere il sito comune!
Anche se il sito comune non avesse spazio web illimitato (ne dubito) 2
paginette di pochi Kb sulle griglie penso che non diano fastidio a
nessuno... anzi!

nessuno... anzi!
Sono d' accordo sulla pubblicazione di articoli che aiutino a capire
come funzionano tante cose, ci mancherebbe ;-)
Nel mio post precedente mi riferivo in realta' al fatto che molti problemi,
relativi alle griglie, che vengono prospettati sul ng mi sembrano dipendere
piu' da una scarsa propensione alla lettura della documentazione ed
alla sperimentazione sul campo piuttosto che da una effettiva difficolta' 
intrinseca all' uso delle stesse.
Ovviamente quanto sopra e' imho e senza cattiveria alcuna.
-- 
ciao, hal

 Ovviamente quanto sopra e' imho e senza cattiveria alcuna.
Ok, su questo ti do ragione, magari se Assa pubblicasse una paginetta su
come popolare le griglie nessuno andrebbe a vederla prima di postare domande
sceme su Ng, però almeno potrai rispondere a costui
Do you know Sito Comune?
No Sito Comune?
AIAIAIAIAI!
Davide

 Davide
Volevo aggiungere una cosa!
Potrebbe essere un'idea inserire una sezione nel sito Comune intitolata Vb
for dummies?
Con le risposte alle domande piů idiote!
Ciauz!
Davide

 Ciauz!
mi sembra ci sia una sezione faq.
j.faqs4dummies