Newsgroup: it.comp.lang.visual-basic
Titolo: VB6 s'è fatto una canna: Incompatibilita' di tipo tra un par di tipo ADODB.RECORDSET ed una variabile locale

Ciao,
Ebbene si! VB6 s'e' proprio fatto una canna e nemmeno piccola...
Guardate qui:
Private Sub InternalFillDocument(ARecSet As ADODB.Recordset)
' Il codice non ci interessa al momento...
End Sub
Public Sub LoadDoc(AParent As DMSDocManager, IdDoc As Integer)
    'Varie cose che non c'interessano...
    Dim LocalRecSet As ADODB.Recordset 'Notare il tipo
    ' Altre cose di cui non ce ne frega...
    Set LocalRecSet = SQLMan.GetRecordSet(LoadDocSql) 'Richiamo il mio
componente di accesso ai dati che ritorna un ADODB.RECORDSET
    InternalFillDocument (LocalRecSet) 'Qui mi da' l'incompatibilita' di
tipo... STA MALE??????
End Sub
Qualche idea?
Andrea

 di tipo... STA MALE??????
Lo fa anche se togli le parentesi o se metti call davanti?
Ciao
Alberto
--
E non so se avrò gli amici a farmi il coro,
o se avrò soltanto volti sconosciuti,
canterò le mie canzoni a tutti loro
e alla fine della strada
potrò dire che i miei giorni li ho vissuti...

 Alberto
Ciao
Andrea

 Uff... sveglie troppo presto la mattina... -_-
Oppure come da subject?
Alberto
--
E non so se avrň gli amici a farmi il coro,
o se avrň soltanto volti sconosciuti,
canterň le mie canzoni a tutti loro
e alla fine della strada
potrň dire che i miei giorni li ho vissuti...

 Uff... sveglie troppo presto la mattina... -_-
Oppure la canna non se l'č fatta VB.....;-)))))
ciaociao

 ciaociao
Andrea

 ha scritto nel messaggio
news:b59uma$27a5nv$1...@ID-170738.news.dfncis.de...

Beh, consolati, a me ogni tanto capita di eseguire una query che mi da
l'errore "parametri insufficienti previsto 1".
Allora, anche sapendo benissimo che ho scritto male il nome di 1 campo
rimango lì per minuti prima di trovarlo! Leggo e rileggo e rileggo e rileggo
poi mi accorgo che il PRIMO campo della query era clente invece di cliente!
EVVAIIII!!!!
ciaociao

 poi mi accorgo che il PRIMO campo della query era clente invece di
cliente!
Il primo che propone l'Option Explicit anche per SQL lo rinomino subito! ;-)

 ha scritto nel messaggio
news:b59uma$27a5nv$1...@ID-170738.news.dfncis.de...

Consolati, e' comunque un errore subdolo, perche' lo noti solo quando il
parametro tra parentesi e' dichiarato ByRef e non e' di tipo Variant (questo
perche' le parentesi forzano il cast a Variant, e ByRef pretende la
corrispondenza esatta tra i tipi)
Ciao

 Oppure come da subject?
cambiando il subject, però :-)
--
Salutoni
Sergio

 ha scritto nel messaggio
news:b5a04l$25vq78$1...@ID-174464.news.dfncis.de...

Occhio che H.P.L potrebbe farti la ramanzina (vedi thread 'db freeware')...
l'Option Explicit in SQL si chiama perlopiu' "usa le stored procedure che te
le controllo in design" ;-)
Ciao
--
Luca Dormio - 
luca....@tin.it
________________________________
"Marty, non stai ragionando in maniera quadridimensionale"
Dr. Emmett L. Brown

 le controllo in design" ;-)
Ah, beh, io non amo essere controllato.
Cosa sono le stored procedure? :-P

 Cosa sono le stored procedure? :-P
molto banalmente: dei comandi sql già "salvati" nel database, ai quali basta
mandare gli opportuni parametri.
Praticamente quello che si può fare costruendo l'istruzione sql al runtime, solo
che le prestazioni dovrebbero essere superiori.
--
Salutoni
Sergio

*CSSoft* ha scritto:

Ora è certo, avete deciso di toronare. Vabbè, ho le spalle (virtualmente)
larghe...

 le controllo in design" ;-)
Mentre quello in Access si chiama "mavaff......tu e i tuoi c..o di parametri
insufficienti di m....a!!!!!!"
:)))
ciaociao

 Ora è certo, avete deciso di toronare.
no, davvero.
hai fatto una domanda credevo vera, e per poco (molto poco) che ne so ho cercato
di rispondere.
se la linguaccia stava a significare che la domanda era da intendere come
"scherzosa", confesso candidamente di non essermene accorto.
--
Salutoni
Sergio

 "scherzosa", confesso candidamente di non essermene accorto.
Sě, la linguaccia stava per quello, perň č vero che, pur sapendo cosa sono,
non conosco le SP, nč le uso.
Ho fatto qualche prova e anche le prestazioni non sono risultate tali da
adottarle.

 prestazioni si vede eccome!!!!
Pensa solo alla valorizzazione fifo di un magazzino, come si diceva ieri.
Prova a farla senza S.P., e vedrai la rete come gode...
Oppure ad algoritmi T.S.P., che utilizzano tabelle temporanee e cursori SQL
a iosa.


 si vede eccome!!!!
Complesse? Il tempo di validazione della sintassi? Irrisorio di fronte a
quello che può essere il tempo di effettiva esecuzione.
Per intenderci, puoi postare una query qualsiasi per la quale si veda un
tempo complessivo di esecuzione apprezzabilmente migliore in SP piuttosto
che con comando diretto? Grazie.

 ricordo male) a poco meno di 3!
Ok, mi hai convinto: Proverň. Grazie.

 corrispondenza esatta tra i tipi)
http://makeashorterlink.com/?W33042ED3
Ciao

 ha scritto nel messaggio
news:b5a3sa$271r39$1...@ID-184808.news.dfncis.de...

Giusto, giusto... e' che questa faccenda della parentesi aveva molti
risvolti in ASP, e all'epoca mi ero fatto la fissa che centrasse il Variant,
prima di scoprire che era il ByVal; tutte le volte devo fare mente locale
per ricordarmi quale era la risposat giusta, e come vedi... ;-)


:-)))
in effetti, quello che non č stato detto fin dall'inizio (o magari mi č
sfuggito), č che una SP non č una query,
ma č un *INSIEME* di query, che fanno un qualchecosa.......
un po' come hai visto nell'esempio che ti ha postato Marg.....
non solo: puoi usare variabili locali, scrivere tabelle e cosě via.....
il tutto elaborato sul server, senza alcun traffico di rete, il che č tutto
dire.....
alla prossima,
good coding!!!
--
Damiani Liborio Igor
ig...@igordamiani.it
 - 
dam...@italiainfiera.it
 - 
idam...@hotmail.com
http://www.igordamiani.it
ICQ : 11847262

 dire.....
Ok, ma, abbiate pazienza, se consideriamo delle normalissime Select (pur
complesse, ovvero con tanti caratteri nel comando), giusto con qualche
condizione Where e magari un ordinamento, dite davvero che sono molto piů
veloci? Io rammento di aver provato a suo tempo e, ma non insisto piů di
tanto, in tali condizioni non avevo visto alcuna differenza...

tanto, in tali condizioni non avevo visto alcuna differenza...
In questo caso, piu' che nella velocita', il vantaggio sta nella
manutenzione. Se dovessi cambiare le join, le modalita' di filtro,
il criterio di ordinamento, inserire delle union, etc. etc.
e non devi anche modificare le colonne di output non c'e' bisogno
di ricompilare l'eseguibile: basta aggiornare la stored procedure.
-- 
ciao, hal

 ha scritto

se il punto fosse questo, non basterebbe mettere le stringhe in una tabella
o alcuni text ?
non e' un discorso di priorita' ed efficienze differenti assegnate dal dbms
?

tanto, in tali condizioni non avevo visto alcuna differenza...
Normalissime query direi di no, ma immagina un algoritmo dove devi
processare diversi result set e per ognuno dei quali fare altre query
etc etc., le singole query possono avere la stessa velocita' di
esecuzione sia "nel" server che chiamate da VB, ma con una stored
eviti parecchio traffico di rete, girando tutto in locale. In contesti
di rete ancora a 10 MB/s o rete con molti client (e magari pochi
switch) questo puo' fare la differenza.
Stefano "HappyMan" (Lago Maggiore - NO)
--
Personal Web 
http://www.sgr.info
Email happyman69 (at) 
libero.it

 ?
Mah...

 tanto, in tali condizioni non avevo visto alcuna differenza...
Per query semplici la differenza molto difficilmente si farà sentire
(considerando solo l'utilità prestazionale delle sp), ma per query 
complesse e *soprattutto* ripetute più volte la differenza può essere 
veramente notevole.
Ciao.
-- 
BSD is for UNIX lovers -- linux is for Windows haters.