Newsgroup: it.comp.lang.visual-basic
Titolo: AIUTO URGENTE PER TESI

Ciao tutti,
    ho un grosso problema nel creare un pacchetto di installazione per un
programma che ho realizzato per la mia tesi di laurea (č un programma server
che deve gestire delle schede sonar). Premetto che il programma funzina sul
computer dove l'ho scritto. Che il pacchetto di installazione funziona in un
computer diverso ma nello stesso laboratorio dove ho lavorato. Ma nel mio PC
di casa e in un portatile che mi hanno prestato (win 98 se, e win me
rispettivamente) non funziona. Mi dą come errore in installazione "Type
mismatch". Installando tutto visual basic sul mio pc l'eseguibile senza
installarlo ma semplicemente facendo un copia incolla mi gira .... ma č
troppo lento!!! Credo abbia problemi nell'aggiornamento di un data base
access che usa. Deve fare 32 update di un campo e invece di impiegare
qualche frazione di secondo ci mette .... 4/5 MINUTI. AIUTOOOOO la settimana
prossima devo presentare il lavoro al prof. e non so come uscirne. Qualcuno
ha qualche idea? Riassumendo i problemi sono due:
1) pacchetto di installazione mal funzionante: errore "type mismatch"
2) update database access incredibilmente lungo: 4/5 minuti per aggiornare
32 campi
Grazie grazie.
            Federico.

 mismatch".
Verifica nel progetto , in riferimenti , che versione di MDAC è
selezionata(Microsoft ActiveX Data Objets 2.5)
Verifica se hai installato insieme al pacchetto MDAC_TYP.EXE , con Access 97
e 2000 va bene anche la versione 2.5,
altrimenti installalo separatamente.
Registra manualmente il file msado15.dll ( per registrarlo trascinalo sopra
il file regsvr32.exe)
Auguri per la tesi.
giuseppeD

 wrote in message
xkKk9.147814$ub2.3...@news1.tin.it...







        Federico.








        Federico.








        Federico.



 che posso osservare:
CUT
ma allora perchè se non sei "pratico", ti sei impegolato e impegnato nel
fare un programma in un linguaggio che non conosci???
Mah misteri dell'università!...e degli studenti!
cmq
a) Probabilmente accedi i dati con DAO....
e molto probabilmente hai tirato dentro il datacontrol no?....non accedi da
codice...ma sfrutti il controllo data
b) Non è molto indicato per acquisizione dati il vb...ma sopratutto se ne
hai molti da acquisire....i controlli sono lenti...
Dovresti aggiornare da codice....un Execute e un po di sql è più veloce.
c) Per funzionare TUTTI i programmi hanno bisogno di un ambiente "familiare"
(ossia una serie di dll che bisogna siano presenti sul pc ove gira il
programma)
Se usi il controllo data devi avere le dll che si riferiscono a quello
installate sul pc ospite.
Ora il controllo Data ha anche una ulteriore complicazione se vedi puoi
scegliere il tipo di database.....
Te cosa aggiorni??? mdb di Access....ma che versione??? 95,97,2000,XP????
Devi impostare Access2000 sulle proprietà del controllo data se vuoi usare
dal 2000 in poi....Access (e basta) dal 2000 (escluso) in giù (come i
vini....c'è l'annata!)
Non solo...bisogna che sul pc ospite installi queste metodologie di accesso
ai dati...in genere è  (se usi dao) una dll...che nel caso di Access2000 si
chiama dao360.dll
In genere il setup ce la fa da se a trovare e installare questa dll....ma
può darsi che tu capiti su un pc "duro a capire"....come ti
consigliavano....allora dovresti installare tutto il pacchetto di "accesso a
i dati "....nome in codice MDAC
MA
c'è una complicazione l'mdac ha le versioni ....fino alla 2.5 davano
l'accesso a Jet (che è il motore db di access) da allora in avanti no!
quindi se usi DAO e access dovresti scaricarti....
http://www.microsoft.com/data/download_Jet4SP3.htm
il pacchetto specifico per Jet (access) e installarlo nel pc ospite.
Riassumendo....
Controlla che ci sia impostato Access o Access2000 nel controllo
data.....deve essere impostato alla versione del db che usi!
fatto?
Ok dovrebbe funzionare....
Non funziona?...installati il Jet service pack dal link Microsoft...
Va piano?
Ciccia ....li fai fare troppe scritture vicine.....il pc o ha poca
memoria...o è più "scacio"del tuo...accoda le scritture...e le esegue
lentamente...tieni presente che un database deve scrivere nel record....e
poi che li fai fare? un aggiornamento (quindi rielabora la tabella)..e un
altra scrittura....troppe cose da fare...si satura e mette in coda!
Scusa ma....
non potevi scrivere tutto in un file di testo e poi
O usare quello con ADO come fonte dati (va be troppo complicato per te)
Oppure
scrivi le misure in un file di testo
e periodicamente le travasi nel database!
Considera che un dato in un file di testo...è praticamente istantaneo.....e
più facile da fare!
Ciauz!

 e sono attualmente deselezionate! Lascio così?
Giusto per evitare confusione, l'MDAC non è la stessa cosa che "Microsoft
ActiveX Data Object".
Comunque, se hai già selezionato la ADO 2.0, lasciala così.
Devi intervenire in due punti:
1) Quando crei il pacchetto di installazione, togli l'MDAC_TYP dai file
inclusi.
2) Nella macchina target (ossia dove devi installare), devif ar girare due
'aggiornamenti':
a) MDAC_TYP27
b) JET40_SP3
Li trovi entrambi sul sito Microsoft. Direi che il primo (MDAC_TYP) potrebbe
bastare, ma se metti anche il secondo sei a posto.
Ciao
Alberto

 chiama sonar.exe);
chi ti dice questo?
Il tuo setup?
Sei sicuro che questo file "setup.cab" sia presente nella cartella da cui
lanci il setup?
Il pacchetto di installazione crea questi file:
Setup.exe (launcher del setup)
Setup.lst (elenco dei files da installare)
*.cab     (file compressi che verranno installati)
Tutti sono necessari per l'installazione.
Comunque, suggerimento: devi capire prima di tutto cos'è che ti da errore
13.
Metti log nel tuo prog. e cerca di capire prima in che sub si verifica
l'errore e poi in quale riga della sub e perchè.
L'errore *non* è tipico di un'installazione malriuscita, ma di un'operazione
non proprio lecita.
(sicuro ad. es. che non leggi/scrivi valori booleani da e in stringhe? VB fa
casino con le traduzioni "true"<->"vero" "false"<->"falso").
Ciao

 non proprio lecita.
Ho pensato anche io questo, poi ho notato una informazione presente nel
primo post:
----
nel mio PC di casa e in un portatile che mi hanno prestato (win 98 se, e win
me rispettivamente) non funziona. Mi dà come errore in installazione "Type
mismatch". Installando tutto visual basic sul mio pc l'eseguibile senza
installarlo ma semplicemente facendo un copia incolla mi gira
----
Ciao
Alberto

 wrote in message
U4Tk9.175373$pX1.6...@news2.tin.it...




 volte non funziona nulla!!!)
Se i record sono tanti (ma, visto com'è scritto, ti aspetti un solo record,
vero?), specialmente con cursore lato server (default), quel MoveLast può
essere _drammatico_ e quindi il vero e unico responsabile della lentezza!
Prova a togliere quel MoveLast e vedi se la velocità torna decente.

 delle volte non funziona nulla!!!)
Scusa (pensandoci son sempre più propenso che il problema sia qui), verifica
bene quanti record restituisce la tua Select perchè delle due l'una:
O deve restituire un solo record e allora quei due Move non hanno ragione di
esistere oppure ne restituisce più d'uno e allora il codice che hai scritto
per l'Update non è corretto perchè agisce solo sul primo record.
Inoltre, potresti, cortesemente, farti dire (magari con qualche link) quale
sarebbe il baco presunto? Grazie.

        End If
........UNA query (una ricerca sul database....già questa porta via
tempo....e il tempo è variabile.....molti record ...molto tempo)
.......passando per un controllo che aggiunge "sovrastruttura"....
Una if....su una condizione del database...Uno spostamento alla fine del
record....uno all'inizio....(dimmi la ragione)....una scrittura ...e una
conferma....
E poi per fare cosa?
Abbi pazienza eh!....
Perchè usi un database?......da quello che hai detto...sembrerebbe
Ho una serie di strumenti e devo memorizzare una grande quantità di dati in
un database....
Sicuro? Access la regge sta mole di dati...se hai 20 periferiche e fai 20
letture ogni 2 secondi...in un giorno quanti record memorizzi????Access li
regge ste centinai di mega di dati?????
Considera davvero di farti un file di log e di fare i totali a fine
giornata!
Oppure (come sembrerebbe ...hai detto che è un server....devi monitorare lo
stato di alcune periferiche.......)?
In tal caso hai scazzato tutto....se le periferiche sono in rete....usa il
winsock...il database lo usi solo per memorizzare o i riepiloghi o le
anagrafiche...io ci ho fatto un internet cafè...
Se le periferiche usano seriali.....c'è il controllo apposito ma il sistema
non cambia....e la velocità aumenta!
Ciauz!

 wrote in message
ihXk9.150338$ub2.3...@news1.tin.it...


 wrote in message
IgXk9.18450$Eu.3...@twister1.libero.it...


 CStr(cella)
Prova a sostituire il + con &
e agiungere gli apicetti '
"select * from celle where id_gruppo='" &
CStr(gruppo) & "' and id_scheda='" & CStr(scheda) & "' and numero_cella='" &
CStr(cella) & "'"
giuseppeD

 CStr(cella) & "'"
Sembrano tutti campi numerici e il Cstr appare un "eccesso di zelo".
Se così fosse, la modifica che hai proposto non andrebbe fatta.

 5 minuti in su (l'ultima volta che ho provato si è perfino impiantato!!!).
CUT
...se devi aggiornare 32 posizioni ti conviene addirittura una matrice!
non ti piace la soluzione tutta RAM?
....e addirittura non scomodare ADO ma un bel file RANDOM....
cmq...
sei entrato in un giro di schiaffi pauroso.....
a) potresti avere l'ado datacontrol "inquinato"
per testare che non è così....
fatti un mini progetto ...l'adodatacontrol ed una griglia (la più stupida
che hai nel database.....) tiralo dentro un form ...aggancia l'adodc alla
tabella...e la griglia all'adodc...basta!...compila fatti il setup ed
installalo su un altro pc...DEVE funzionare!...se non funziona....
  a-1) Sei sicuro di non avere fatto path assoluti? se li dici che il db è
in c:\prog\test.mdb e lo installi in d?
Comunque per il test controlla di installarlo sul pc ospite esattamente
(archivio e programma) dove lo hai sul tuo pc di sviluppo!
(Consiglio...usa app.path in futuro per svincolarti da una posizione
predefinita!
io ad esempio metto sempre gli archivi in una dir Archivi sotto la dir di
installazione del programma.....poi la recuperi con  App.path &
"\Archivi\test.mdb")
a-2) Sei sicuro di avere installato l'MDAC....non ce lo hai mai detto ma su
che sistema operativo si rifiuta di partire?...vedi se è un SO vecchi ha
bisogno di Dcom
a-3) E' un pc "neutro"? sei sicuro che non abbia qualche prolema
all'origine?.....si avvia e si spenge da programma regolarmente?
Se dopo questi controlli il miniprogetto (che proprio perchè stupido non
prevede errori da parte tua...non c'è una riga di programmazione da fare ma
solo proprietà da impostare) non va.....ADODC è corrotto!
Altrimenti......colpa tua sbagli qualcosa nel programma!non è un
malfunzionamento di win ma un bug del tuo/vostro programma !
P.s.
Per informazione:
Se usi lato client Access con il suo provider....RecordCount potrebbe non
dire il vero....anche mamma microsoft consiglia di fare
rs.movelast
rs.movefirst
recs=rs.recordcount per essere sicuri che conti giusto! se non te ne frega
del recordcount togli tutto!...usa una query sql che è anche più veloce!

 ..........
allora ho provato; selezionando access e poi il nome del file mdb che mi
interessa mi dà errore "unrecognized database format ..."; invece
selezionando remote ODBC mi funziona mettendo il nome del link al database
che ho creato (databasesonar). Il codice aggiorna in automatico delle
griglie ma non fa interrogazioni al database e non mi riesce quindi di
riadattarlo alle mie esigenze!!!
Grazie.

 riadattarlo alle mie esigenze!!!
Insisto.
Hai installato Jet40SP3?
Alberto

 wrote in message
9m_k9.178343$pX1.6...@news2.tin.it...


 devo usare un martello!!!!!
e per riaccenderlo la falce ?

 e per riaccenderlo la falce ?
Macche, non è più di moda.
Un tempo gli indiani facevano la danza della pioggia, oggi si fanno i
girotondi.
Cos'è cambiato? Beh, forse che la pioggia arriva davvero, fin troppa.
Però ... sempre indiani sono.
Ciapalè! ;-PPP

 Sembrano tutti campi numerici e il Cstr appare un "eccesso di zelo".
Se sono campi numerici concordo
giuseppeD


CUT
se parli di gestire un parcheggio ok....il database ti serve per gestire i
clienti paganti e che hanno un posto fisso....per memorizzare dati
statistici (posti più occupati...tempi di sosta per ogni box ....etc
etc)..per gestire abbonamenti...tessere magnetiche etc etc....
Monitorare i posti NON ti serve il database ......ti serve una app un
serverActivex una dll un "qualcosa" che comunichi al tuo programma un
evento!...ossia che un posto è libero (o occupato)....
Ti costruisci una matrice ....e dentro 1 occupato 0 libero....il programma a
intervalli regolari scannerizza matrice e "sonar".... se ci sono discrepanze
segnala I DATI effettivamente CAMBIATI e solo quelli...al tuo programma che
aggiorna il database...decrementa il segnaposti....segnala
all'operatore...apre la sbarra...insomma quello che li pare.....
ci vuole un programmino di scan(o più di uno...uno per livello o zona del
parcheggio ad esempio)...che comunica ad un server centrale quello che
cambia!
è il solito problema di un internet cafè!
Quali postazioni sono libere?...chi c'è in quella postazione? Quanto ha
pagato? è scaduto il tempo?...etc etc...
Dagli di programm1:
2 o più client+winsock e 1 server + winsock!
Cavolo!....un parcheggio di mille posti!...chi sa quante migliaia di euro di
programma!....a chi mando la fattura di consulenza!?????
Bah va be!
Ciao!

 wrote in message
7Y0l9.179275$pX1.6...@news2.tin.it...
