Newsgroup: it.comp.lang.visual-basic
Titolo: Progetto o Libreria

Ho un problema alquanto strano che non mi era mai capitato.
Dopo aver realizzato un programma in ogni sua componente, eseguo le seguenti
operazioni:
- compilazione
- assemblaggio del progetto
- pacchetto di distribuzione
Eseguo la installazione del programma su un altro PC
All'avvio ho:
Run-Time error '5'
Invalid procedure call or argument
Per capire cosa succede porto l'interpretato nell'ambiente dov'è installato
il compilato ossia nel secondo PC
avvio il programma vbp e mi compare l'errore:
Impossibile trovare Progetto o Libreria
in debug
l'errore cade sulla funzione Curdir
(se commento questa riga l'errore passa ad altra funzione successiva)
L'Help mi dice che nei riferimenti del progetto vi è qualche libreria che
manca
Vado nei riferimenti e trovo
Manca: Microsoft ActiveX Data Objects 2.0 Library
Escludo questa libreria e il programma gira bene..
Cosa è successo???
E' importante sapere cosa è successo per poter correre ai ripari.
E' sufficiente ricompilare il programma e procedere fino alla distribuzione?
Non succederà ancora qualcosa?
E perchè è successo questo??
Ditemi qualcosa ,,,   grazie

E' successo che quando distribuisci un programma devi essere sicuro che il
computer che "ospita" il programma abbia tutte le librerie necessarie al
corretto funzionamento del programma stesso.
Se il programma compilato non trova le giuste librerie a cui fa riferimento
restituisce un errore di run time
Se togli tutte le righe dove utilizzi le funzioni incluse nella libreria
mancante e ricompili, va tutto ok!
ciao


La risposta istintiva sarebbe di leggersi i post passati....
Buona risposta sarebbe anche di andare a trovare wally.....
La risposta professionale è:
Nel tuo progetto usi ADO come tecnologia di accesso ai dati?
SE SI.....
Bene devi sapere che il setup di vb6 mette quelle dll che ha disponibili nel
suo programma di installazione....se non li dici nulla o non lo modifichi si
installa le vecchie dll 2.0
Considera che il mondo va avanti...adesso siamo alla 2.7!
Se installi il progetto sotto XP o win2000 o anche su un pc già aggiornato
da un altro programma, ti trovi dentro già le dll aggiornate(più o
meno)....quindi il tuo programma ha già tutto quello che serve per "girare".
Può darsi che il tuo setup faccia casino nell'installare versioni vecchie su
nuove e viceversa....
Nel qual caso è regola comune ....testata sul campo...prima installare
l'MDAC (che è il pacchetto di zio Bill per aggiornare le tecnologie di
accesso ai dati) e POI installare il programma TOGLIENDO le dll dell'accesso
ai dati (DAO E/O ADO).
A quel punto il sistema "batte in pari" con il tuo compilato
maggiori info
www.microsoft.com/data
attenzione che il Jet non lo distribuiscono + dalla vers. 2.5 in avanti
insieme a MDAC ma come aggiornamento separato....vedi la pagina che ti ho
indicato!
SE NO....
hai messo per errore/svista nel tuo progetto un componente o un riferimento
ad ADO come tecnologia di accesso ai dati!
Correggi il bug e tutto va  a posto!

E vai col kill!!!! con questo siamo a 3!
Andrea


??????  cosa significa  ???????
Ciao

 mega in più che mi ritrovo.
non esserne mai troppo sicuro, in special modo per quanto riguarda le librerie
per l'accesso ai dati.
Ad esempio ho notato che vb6, con sp5, installato su macchine 98 e ME, inseriva
mdac nel pacchetto di installazione, rifacendo lo stesso pacchetto su una
macchina w2000 questo file non veniva più automaticamente incluso...
Inoltre, nota che questo pacchetto ha bisogno, per funzionare, che sulla
macchina target sia installato IE in versione pari o superiore alla 4 sp non
ricordo più.....
Insomma, è sempre un casino.... ma se cerchi con google nei post precedenti
troverai tutte le informazioni e le cautele necessarie per non avere (quasi)
nessun problema
Salutoni
Sergio

 indicato!
Grazie ancora dell'attenzione e saluti

 corretto funzionamento del programma.
CUT
Beh questa mi sembra un altra buccia di banana......ragioniamo insieme...
quando nacque vb6 preoccupazione dei "geni" di zio bill fu quella di fare un
"qualcosa" per le installazioni....
Benissimo...una volta tanto...la pensarono buona(non giusta...non
esageriamo...buona!)....ossia
il programma che fa le installazioni di VB6....è un programma in VB6....e ti
danno anche il sorgente....
Quindi versatilità ottima...se sai dove mettre le mani ti fai le
installazioni che vuoi...Inno o non Inno!
Occhio che parlo del setup che porti al cliente eh!
La creazione guidata è disponibile anche come ocx...ci facevo caso ieri.....
Quindi ricapitoliamo.....versatilità ok.....
Tu controribatti...ma non sa cosa installare???
Beh io ti rispondo e chi è superman??!!!
Nel senso che la M$ ti fornisce una serie di dll per l'accesso ai dati che
qualche anno fa erano alla 2.0....adesso sono alla 2.7.....
Ma se te le sostituisse senza dirti nulla sarebbe l'ideale per l'uTonto...ma
un programmatore storcerebbe il naso!
La soluzione è in 2 operazioni:
a) Sapere che le dll per l'accesso ai dati con ADO sono in MDAC (DAO è un
altro  discorso... ma DAO è obsoleto per m$)
b) Sostituire in Redist della cartella setup le dll (vedi quante ce ne
sono?) con le versioni giuste
Ecco che con un attimo di attenzione i tuoi pacchetti installano quello che
vuoi tu....
Come vedi è una soluzione semplice e versatile....non controllano
nulla...installano quello che c'è in redist...se in redist è sbagliato
installano sbagliato...se è giusto...giusto.
D'altronde che ci stanno a fare i programmatori?
Una decisione salomonica lasciano a te la preoccupazione delle versioni e
delli aggiornamenti.....discutibile ma versatile!
Bye man!
:-)

 Escludo questa libreria e il programma gira bene..
Ti rispondo solo in merito a questo problema: è tipico di VB6 dare errori
assurdi se ha MANCA nei riferimenti.
Tu nella fattispecie non hai installato l'accesso ai dati ADO ver.2.0
(mdac_typ.exe)
Ciao
--
mathParser = "
http://www.neodatatype.net
"
sitoComune = "
http://www.it-lang-vb.net
"

Grazie della spiegazione chiara ed esauriente.
Ti sei fatto un amico
Ciao e buon lavoro