Newsgroup: it.comp.lang.visual-basic
Titolo: VB6 - MDB - Creazione pacchetto di istallazione

Ho fatto la mia applicazione in VB6 con data base access (DAO + SQL)
che sembra funzionare correttamente sul mio PC (Win98).
Con la creazione guidata pacchetto di istallazione (seguendo i comandi
consigliati senza apportare alcuna modifica) ho creato  il pacchetto.
Sono andato dal cliente (XP H.E.) e ho lanciato setup1.exe lasciando (se già
esistenti e successive) le DLL del suo PC.
Non sono comparsi messaggi d'errore.
Al run del programma si apre una finestra che mi chiede di specificare delle
informazioni (non ricordo bene, mi sembra DNS o ODBC o entrambi).
Ah, dimendicavo di specificare che nel PC del cliente non è istallato nè VB
nè access.
Nel manuale non ho trovato niente in merito.
Due particolari:
- Durante la creazione guidata mi è stata segnalato che manca WinSpool
(circa).
- Nel passi successivi ho notato che venivano indicate diverse DLL con
(a sinistra) il nome della DLL e (a destra) il file di origine dei dati.
Nel caso del run time di VB (a destra) non compariva niente. Normale?
Cercherò ancora in internet.
Intanto se qualcuno potesse aiutarmi...
Grazie e saluti, Sauro

 (circa).
Sauro, quanti (troppi) dubbi... Carta e penna quando si vedono messaggi
strani!
Non so comunque cosa sia WinSpool..

Lupo wrote:

Apro il database in questo modo:
Public PublicDB as Database 'in un modulo
Set PublicDB = OpenDatabase("C:\NomeDir\NomeDB.MDB")
Quindi, almeno nelle mie intenzioni, uso solo il jet normale.
Proprio per questo non riesco a capire la ragione di quella finestra.
Come riferimento nel progetto ho DAO 3.6
Pensi comunque che intervenire sul pannello di controllo possa essere
di qualche utilità ?
Comunque seguirò il tuo consiglio e spazzerò via tutto quello che non serve.
Grazie.
Ciao, Sauro

 nè access.
Come dice Lupo hai usato ODBC per accedere ai dati.
L'ODBC è un po' la canna del gas alla quale attaccarsi se proprio non ci
sono altre strade.
Con DAO/ADO puoi accedere a .mdb in modo nativo.
Se proprio hai bisogno di usare ODBC credo (non ho mai provato) che tu debba
distribuire anche un file DSN che crei dalla finestra dell'ODBC (pannello di
controllo -> strumenti di amministrazione -> ODBC) e collegarti a questo da
programma.
Altrimenti devi creare a mano un DSN sul pc del cliente.
Ciao
--
Math Parser : 
http://www.neodatatype.net
Sito Comune : 
http://www.it-lang-vb.net

 di qualche utilità ?
No, devi trovare chi è che cerca di usare ODBC.


 No, devi trovare chi è che cerca di usare ODBC.
Sono d'accordo con Zanna.
Se non te la cavi "al volo", pubblica qui il file Setup.LST che ottieni dal
PDW e, insieme, tutti i Riferimenti e Componenti che hai spuntato nel
progetto.

 progetto.
Credo non serva a molto: ODBC non viene incluso nel pacchetto.
Perň il problema dovrebbe darglielo anche in debug sul suo PC.
Se non lo da č perchč qualcuno ha creato il DSN, quindi occorre andare
nell'ormai famoso pannello di controllo, cercare e rimuovere il DSN
incriminato.
In questo modo dovrebbe essere moltu piů semplice caprire dove si verifica
il problema (cosě dovrebbe darlo anche al lui).


 verifica il problema (cosě dovrebbe darlo anche al lui).
Certo, ma sarebbe ancora da scoprire chi usa DNS e/o ODBC...
Intendevo che, probabilmente, dal setup.lst si vede qualche controllo
"strano" che potrebbe essere il "chiamante" incriminato. Poi si tratta di
capire/decidere se tale controllo č necessario o inutilmente aggiunto.

Zanna e Lupo scusatemi.
Effettivamente in un form che non usavo piů e che non avevo
tolto dal progetto c'era un controllo data con un
Connect = FoxPro 3.0;
Probabilmente il mio problema nasce da quello.
L'ho tolto e ricompilato.
Nei prossimi giorni lo riproverň dal cliente.
In effetti il form serve solo una volta all'inizio per importare
i dati da una serie di DBF che usavo nel programma precedente in clipper.
Posso tranquillamente (dovrň ripetere l'operazione da altri clienti)
ricopiarmi
i dati nel mio portatile per fare l'importazione dei dati.
Tra l'altro non ho capito (il form l'aveva fatto un'altra persona con la
quale
lavoravo qualche tempo fa') perchč  Fox Pro 3.0 e non dBase III.
Comunque funziona.
Grazie ancora.
Ciao, Sauro

 OFFICE~1 OCX        65.536  01/06/99  21.12 OfficeAssistant.ocx
"Sicuramentre sostituibile" no, ma certamente degno di approfondimento...

 ODBC.
DSN, il DNS è un'altra cosa.
Comunque, semplicemente quello che hai trovato (come l'hai trovato? Hai
provato a fare quello che ti dicevo?) non è l'unica cosa che ci accede.
Potrebbe anche risiedere in tue DLL esterne all'exe (non credo esistano dll
di terze parti che di loro decidono di accedere a ODBC).
Guarda se tra i tuoi riferimenti/componenti c'è qualcosa di tuo che potrebbe
accedervi.
Una cosa rozza potrebbe essere la ricerca della stringa "ODBC" in tutti i
files del tuo progetto tramite ad es. il "cerca file" di windows (non da
VB), sempre che tu non usi XP, perchè la ricerca di parole nei files con
explorer di XP non funziona :(


 "Sicuramentre sostituibile" no, ma certamente degno di approfondimento...
Considerando che il mio programma si chiama xFormOK sarebbero
veramente poche quelle sostituibili.
OfficeAssistant.ocx l'ho scaricato tempo fa' dal sito del NG e permette
di salvare una stringa in Word.
Solo STDFTTT non so cosa sia.
Sicuramente mi sono spiegato male io e poi ci capisco poco di DLL.
A questo punto ti faccio una domanda che a te forse sembrerą stupida.
Se io modifico il mio progetto, ricompilo e ricreo il pachetto di
istallazione,
tutte le DLL che vengono allegate (a parte quelle col nome del progetto)
sono identiche alle precedenti con lo stesso nome?
Ciao, Sauro

 explorer di XP non funziona :(
Ho cercato senza esito:
DSN
datafield  (dovrebbe comparire in qualche file di Form se ci fosse
                un controllo data).
Ho trovato invece ODBC nel file NomeMioProgramma.PDM.
Lo trascrivo in fondo perchè è piuttosto lungo.
Questo file viene creato automaticamente dalla procedura di creazione
guidata pacchetto di istallazione.
Come riferimenti ho:
Visual Basic for application             (serve se la procedura è autonoma?)
Visual Basic runtime object and procedures
Visual Basic object and procedures
OLE Automation
Microsoft DAO 3.6 Object Library
Microsoft Data Formatting Object Library (SP4)      (non ricordo a che
serve)
Come componenti/controlli ho:
Microsoft Common Dialog Control 6.0 (SP3)
Microsoft Masked Edit Control 6.0 (SP3)
OfficeAssistant      (è un ocx che ha a che fare con word)
Come componenti/finestre di progettazione:
Ne erano selezionati alcuni, ma li ho tolti tuttti (solo adesso).
Come componenti/oggetti inseribili:    nessuno
Rimangono i miei:
form
moduli
moduli di classe
controlli utente
Li ho controllati e non ho trovato niente di strano in merito all'accesso
dati.
Prova a guardare il file PDM che segue, mi sembra ci sia effettivamente
qualcosa di strano in merito a OCBC.
Grazie per il tuo interessamento.
Ciao, Sauro
/////////////////////////
[Root]
Most Recent Package=Pacchetto di installazione standard 1
[Package|Pacchetto di installazione standard 1|Root]
SubWizProgID=PDWizard.SetupPkgSubWiz
BuildFolder=C:\Max\Pacchetto
[Package|Pacchetto di installazione standard 1|Configure DAO ISAMs]
Applicable=No
[Package|Pacchetto di installazione standard 1|Configure DAO ODBC]
JetWorkspace=
ODBCDirect=
[Package|Pacchetto di installazione standard 1|Files Found]
[Package|Pacchetto di installazione standard 1|Files Released]
Winspool.dll=
[Package|Pacchetto di installazione standard 1|Missing Dependency
Information]
[Package|Pacchetto di installazione standard 1|Out-of-Date Dependency
Information]
[Package|Pacchetto di installazione standard 1|Files Added]
[Package|Pacchetto di installazione standard 1|Files Removed]
[Package|Pacchetto di installazione standard 1|Files In Project]
C:\Max\xFormOK.exe=Yes
C:\WINDOWS\SYSTEM\MSVBVM60.DLL=Yes
C:\Programmi\Microsoft Visual
Studio\VB98\Wizards\PDWizard\Redist\OLEAUT32.DLL=Yes
C:\Programmi\Microsoft Visual
Studio\VB98\Wizards\PDWizard\Redist\OLEPRO32.DLL=Yes
C:\Programmi\Microsoft Visual
Studio\VB98\Wizards\PDWizard\Redist\ASYCFILT.DLL=Yes
C:\Programmi\Microsoft Visual
Studio\VB98\Wizards\PDWizard\Redist\STDOLE2.TLB=Yes
C:\Programmi\Microsoft Visual
Studio\VB98\Wizards\PDWizard\Redist\COMCAT.DLL=Yes
C:\WINDOWS\SYSTEM\VB6IT.DLL=Yes
C:\Programmi\File comuni\Microsoft Shared\DAO\DAO360.DLL=Yes
C:\WINDOWS\SYSTEM\MSJET40.DLL=Yes
C:\WINDOWS\SYSTEM\MSJTER40.DLL=Yes
C:\WINDOWS\SYSTEM\MSJINT40.DLL=Yes
C:\WINDOWS\SYSTEM\VBAJET32.DLL=Yes
C:\WINDOWS\SYSTEM\expsrv.dll=Yes
C:\WINDOWS\SYSTEM\MSWSTR10.DLL=Yes
C:\WINDOWS\SYSTEM\mswdat10.dll=Yes
C:\WINDOWS\SYSTEM\MSRD2X40.DLL=Yes
C:\WINDOWS\SYSTEM\MSRD3X40.DLL=Yes
C:\WINDOWS\SYSTEM\MSREPL40.DLL=Yes
C:\WINDOWS\SYSTEM\msjtes40.dll=Yes
C:\WINDOWS\SYSTEM\VB5DB.DLL=Yes
C:\WINDOWS\SYSTEM\MSMASK32.OCX=Yes
C:\WINDOWS\SYSTEM\MSMSKIT.DLL=Yes
C:\WINDOWS\SYSTEM\COMDLG32.OCX=Yes
C:\WINDOWS\SYSTEM\CMDLGIT.DLL=Yes
C:\A_OCX_Buoni\OfficeAssistant.ocx=Yes
C:\WINDOWS\SYSTEM\MSSTDFMT.DLL=Yes
C:\WINDOWS\SYSTEM\STDFTIT.DLL=Yes
C:\Programmi\Microsoft Visual Studio\VB98\Wizards\PDWizard\SETUP.EXE=Yes
C:\Programmi\Microsoft Visual Studio\VB98\Wizards\PDWizard\SETUP1.EXE=Yes
C:\WINDOWS\SYSTEM\VB6STKIT.DLL=Yes
C:\Programmi\Microsoft Visual Studio\VB98\Wizards\PDWizard\ST6UNST.EXE=Yes
[Package|Pacchetto di installazione standard 1|Configure Registry Files]
Applicable=No
[Package|Pacchetto di installazione standard 1|Configure Remote Servers]
Applicable=No
[Package|Pacchetto di installazione standard 1|Install Locations]
C:\Max\xFormOK.exe=$(AppPath)
C:\WINDOWS\SYSTEM\MSVBVM60.DLL=$(WinSysPathSysFile)
C:\Programmi\Microsoft Visual
Studio\VB98\Wizards\PDWizard\Redist\OLEAUT32.DLL=$(WinSysPathSysFile)
C:\Programmi\Microsoft Visual
Studio\VB98\Wizards\PDWizard\Redist\OLEPRO32.DLL=$(WinSysPathSysFile)
C:\Programmi\Microsoft Visual
Studio\VB98\Wizards\PDWizard\Redist\ASYCFILT.DLL=$(WinSysPathSysFile)
C:\Programmi\Microsoft Visual
Studio\VB98\Wizards\PDWizard\Redist\STDOLE2.TLB=$(WinSysPathSysFile)
C:\Programmi\Microsoft Visual
Studio\VB98\Wizards\PDWizard\Redist\COMCAT.DLL=$(WinSysPathSysFile)
C:\WINDOWS\SYSTEM\VB6IT.DLL=$(WinSysPath)
C:\Programmi\File comuni\Microsoft Shared\DAO\DAO360.DLL=$(MSDAOPath)
C:\WINDOWS\SYSTEM\MSJET40.DLL=$(WinSysPathSysFile)
C:\WINDOWS\SYSTEM\MSJTER40.DLL=$(WinSysPathSysFile)
C:\WINDOWS\SYSTEM\MSJINT40.DLL=$(WinSysPathSysFile)
C:\WINDOWS\SYSTEM\VBAJET32.DLL=$(WinSysPathSysFile)
C:\WINDOWS\SYSTEM\expsrv.dll=$(WinSysPathSysFile)
C:\WINDOWS\SYSTEM\MSWSTR10.DLL=$(WinSysPathSysFile)
C:\WINDOWS\SYSTEM\mswdat10.dll=$(WinSysPathSysFile)
C:\WINDOWS\SYSTEM\MSRD2X40.DLL=$(WinSysPathSysFile)
C:\WINDOWS\SYSTEM\MSRD3X40.DLL=$(WinSysPathSysFile)
C:\WINDOWS\SYSTEM\MSREPL40.DLL=$(WinSysPathSysFile)
C:\WINDOWS\SYSTEM\msjtes40.dll=$(WinSysPathSysFile)
C:\WINDOWS\SYSTEM\VB5DB.DLL=$(WinSysPath)
C:\WINDOWS\SYSTEM\MSMASK32.OCX=$(WinSysPath)
C:\WINDOWS\SYSTEM\MSMSKIT.DLL=$(WinSysPath)
C:\WINDOWS\SYSTEM\COMDLG32.OCX=$(WinSysPath)
C:\WINDOWS\SYSTEM\CMDLGIT.DLL=$(WinSysPath)
C:\A_OCX_Buoni\OfficeAssistant.ocx=$(WinSysPath)
C:\WINDOWS\SYSTEM\MSSTDFMT.DLL=$(WinSysPath)
C:\WINDOWS\SYSTEM\STDFTIT.DLL=$(WinSysPath)
C:\Programmi\Microsoft Visual
Studio\VB98\Wizards\PDWizard\SETUP.EXE=$(AppPath)
C:\Programmi\Microsoft Visual
Studio\VB98\Wizards\PDWizard\SETUP1.EXE=$(WinPath)
C:\WINDOWS\SYSTEM\VB6STKIT.DLL=$(WinSysPathSysFile)
C:\Programmi\Microsoft Visual
Studio\VB98\Wizards\PDWizard\ST6UNST.EXE=$(WinPath)
[Package|Pacchetto di installazione standard 1|Configure Shared Files]
Applicable=Yes
C:\Max\xFormOK.exe=No
[Package|Pacchetto di installazione standard 1|Distribution]
Type=single
Size=
Title=xFormOK
[Package|Pacchetto di installazione standard 1|IconGroups]
Group0=xFormOK
PrivateGroup0=-1
Parent0=$(Programs)
[Package|Pacchetto di installazione standard 1|xFormOK]
Icon1=xFormOK.exe
Title1=xFormOK
StartIn1=$(AppPath)
Key1=Icon1
[Package|Pacchetto di installazione standard 1|Package]
PackageFolder=C:\Max\Pacchetto
ProjectFolder=C:\Max
ServerSideCab=
File1=C:\Max\Pacchetto\setup.exe
File2=C:\Max\Pacchetto\Setup.Lst
File3=C:\Max\Pacchetto\xFormOK.CAB
Handler1=PDWizard.FolderDplySubWiz
Handler2=PDWizard.WebPostDplySubWiz

Ho cercato meglio ed ho visto che la stringa ODBC compare anche in:
MSVBVM60.DLL
DAO360.DLL        (qui c'è anche DSN)
MSJET40.DLL
Sauro