Newsgroup: it.comp.appl.access
Titolo: Access come servizio, ma caldamente sconsigliato.

Obiettivo:
Ho bisogno che ogni 10 minuti circa, in modo hide (o al massimo visibile 
come icona systray), parta l'esecuzione di un mde.
Se si verificano determinate condizioni devo assicurami:
1) l'mde diventa visibile e all'utente viene data la possibilit� di gestire 
l'interfaccia di access (quindi non pi� hide). Qui con un po' di API dovrei 
farcela da solo.
2) l'mde � l'ultima esecuzione del giorno ovvero ogni pianificazione 
successiva non deve essere mai pi� eseguita fino al giorno successivo
Bisogna assicurarsi anche che se l'esecuzione programmatica della stessa ci 
mette pi� del tempo del previsto la pianificazione in scadenza non deve 
essere eseguita.
Se invece l'mde � in crash o � bloccato per qualche ragione "dovrei" 
eseguire un killprocess al termine di un tempo timeout a mia discrezione e 
poi riprendere l'esecuzione dell'mde.
In pratica � assimilabile a un servizio. Ma personalmente eviterei questa 
strada.
Ho ha disposizione solo l'IDE di VBA.
Operazioni Pianificate di Win XP non so se fanno al mio caso.
A voi i suggerimenti.
Grazie
Daniele

 Daniele
Cosa fa l'mde che non puï¿½ fare uno script VBS/WSH?
Ciao.
-- 
Sergio MAZZA 

 Ciao.
1) Ottenere un recordset di un server con connessione odbc utilizzando le 
stesse credenziali di WinXP.
2) In base al contenuto di un riga o raramente pi� di una, decidere se 
eseguire una serie di operazioni giornaliere
3) Resettarere le informazioni sul quel recordset, o al massimo eseguire uno 
statement UPDATE con ADODB.Command al termine delle operazioni giornaliere 
sempre con ODBC
Grazie
Daniele 

 Daniele
Cosï¿½ in linea generale (connessione odbc e manipolazione dati) non mi sembra 
impossibile; forse il problema potrebbe essere l'utilizzo delle credenziali 
di WinXP.
Ma bisognerebbe capire in modo piï¿½ dettagliato ogni passo...
Ciao.
-- 
Sergio MAZZA 

 Ciao.
Se � un problema potrei creare un account minimalista con user e password 
noti a priori con accesso a un solo chiamamolo "recordset"
? 

 ?
Non mi sono spiegato bene.
Intendevo dire che non ho capito/non mi ï¿½ chiaro il perchï¿½ per: Ottenere un 
recordset di un server con connessione odbc utilizzando le stesse 
credenziali di WinXP.
Ossia non mi ï¿½ chiaro tutto il problema; ma a parte questa mia lacuna, se 
provi a descrivere per punti i problemi da risolvere ï¿½ probabile che per 
ognuno si trovi una soluzione.
Ma forse intendi che la base dati ï¿½ su un pc e per accederci devi avere 
usr/pssw?
Puoi sempre, nello script, crearti una condivisione "al volo"(es. l'utilizzo 
del NET USE o il metodo MapNetworkDrive (WSH) 
http://msdn.microsoft.com/en-us/library/8kst88h6(VS.85).aspx
)  e poi 
rimuoverla (gestendo anche gli errori).
Un punto di partenza potrebbero essere gli esempi nello Script Center:
http://gallery.technet.microsoft.com/ScriptCenter/en-us/site/search?f%5B0%5D.Type=RootCategory&f%5B0%5D.Value=databases&f%5B1%5D.Type=SubCategory&f%5B1%5D.Value=activex
E la stringa di connessione:
http://www.connectionstrings.com/access#p88
Ciao.
-- 
Sergio MAZZA 

 Ciao.
Il server � un as400.
Per accedere utilizzo le credenziali di Win XP ed avere accesso al DB2 con 
Access ADODB <-> MS Cursor Engine <-> IBM ODBC / OLE DB <-> DB2 mediante una 
specifica connection string confezionata opzionalmente in (lettura, 
scrittura, transazionale commit e rollback per intenderci)
La lettura di questi record servono al pianificatore per verificare se ci 
sono condizioni tali da consentire l'ok alla partenza di una serie di 
operazioni da eseguire solo e soltanto una volta al giorno
Al termine delle operazioni agli stessi record viene notificata la 
conclusione delle operazioni mediante o il metodo recordset.update di adodb 
o attraverso una update con il metodo adodb.command.execute. Preciso che non 
� necessario che il recordset aperto rimanga connesso tutto il tempo si pu� 
risvegliare remipostando set rst.Connection = ....
Il "servizio" quindi serve solo ad interrogare l'as400 per aver conferma se 
eseguire o no operazioni.
Per comodit� il "servizio" e l'esecutore delle varie operazioni potrebbero 
risiedere nello stesso file... oppure decidere di tenere separati 
l'interrogatore e l'esecutore.
Spero di essere stato chiaro
Grazie
Daniele 

 Daniele
Argh...
Detto in parole povere; la stringa di connessione+istruzioni ADODB hai 
provato a farle girare in un file VBS?
Ciao.
-- 
Sergio MAZZA 

 Ciao.
Argh...hgrA
Forse stiamo perdendo di vista l'obiettivo...del primo post.
Per caso stai dando per scontato che devo far girare un vbs separato 
dall'mde?
Non ho fatto una prova, ma penso che non ci siano problemi (a parte la 
misera gestione errori e la mancanza di moduli di classe da me 
preconfenzionati per questo tipo di interrogazioni, con eventi ecc. ecc.)
Effettivamente � la strada giusta lanciare un vbs?
Come si fa ad impedire che una volta che l'mde � in esecuzione o lo stesso 
vbs � in esecuzione non debbano essere eseguite altre istanze?
Il nocciolo della questione � la pianificazione controllata dell'esecuzione 
dell'mde, non quello che deve fare l'mde.
L'mde deve dire:
"Attenzione, son gi� in esecuzione non eseguirmi nuovamente" ogni 10 minuti 
in hide oppure
"Attenzione, non eseguirmi pi�... per oggi. Domani � un altro giorno"
Daniele

"OneEDP" <OneEDP@antispam> wrote in
news:4aa8b9d1$0$1094$
4faf...@reader3.news.tin.it
: 

prova a descrivere l'esigenza slegandola dal metodo.
a naso, a me pare che tu stia cercando di usare lo strumento sbagliato 
per ottenere il risultato.
tieni pero' presente che, pur avendo letto anche il resto del thread, non 
ho ben chiaro cosa vuoi fare, perche' non ho capito qual'e' l'utilita' di 
fare eseguire il compito al file mde, piuttosto che a uno script vbs o 
altro (ok, hai l'ide di vba, ma i vbs li fai anche col notepad ;-P).
-- 
Paolo opg
BE AWARE that this post uses a fake reply-to address
to contact me write to:
janickg ( at ) hotmail ( dot ) com
--

 Daniele
Ciao.
-- 
Sergio MAZZA 

 Ciao.
Non volevo annoiarti con quello che deve fare l'mde, ma a questo punto serve 
a fare chiarezza.
L'mde esegue un ftp non presidiato
Utilizza diverse API per gestione interfaccia, ftp, invio email, sccrun.dll 
ecc...
Utilizza moduli di classe personalizzati con eventi personalizzati
Utilizza moduli di classe di librerie esterne IBM con eventi IBM
Gestisce l'interfaccia utente con pulstanti vari e opzioni vari.
Gestisce tabelle nascoste che danno la "direzione" alle scelte business e 
funzionali del backup
Eventi... gestione errori, funzioni callback...
Sinceramente non lo farrei nemmeno per sogno con vbs e sono sicuro anche tu
A tua disposizione


Ho risposto or ora a Sergio e converrai con me 

 A tua disposizione
Ok. Ok. Ma; vengono eseguite tutte al verificarsi della condizione?
Io non intendo sostituire tutto quel popï¿½ di lavoro con vbs ma isolare solo 
la parte "isolabile":
es.
- accesso ai dati
- verifico se ci sono le condizioni per far partire le operazioni?
-- sï¿½ --> eseguo le "operazioni";
-- no --> chiudo il gas e vado via.
Forse semplifico troppo...
Ciao.
-- 
Sergio MAZZA 

 
dalle descrizioni che hai fatto, secondo me hai scelto lo strumento 
sbagliato per l'esecuzione schedulata.
da quello che capisco, hai sviluppato un'interfaccia utente che svolge 
compiti complessi, la vorresti lanciare ogni 10 minuti su una macchina 
client e, in base ad alcune valutazioni fatte dall'interfaccia, decidere 
se chiudere access oppure mostrare il tutto all'utente.
access non e' propriamente una piuma e lanciato ogni 10 minuti su un 
client, lo ammazza, soprattutto se e' un client utilizzato e non 
dedicato.
tanto piu' se, come indichi nel post iniziale, c'e' il rischio che 
l'elaborazione impieghi piu' di 10 minuti.
con una situazione del genere, io se possibile sposterei almeno le 
valutazioni sull'as e poi andrei a leggere l'esito delle valutazioni 
direttamente dall'as, lanciando il mde sul client solo se necessario.
non so pero' se sia possibile farlo nel tuo caso...
se proprio sei alle cozze e il mde DEVE essere usato una soluzione 
potrebbe essere:
- apertura del mde in modalita' esclusiva, cosi' eviti la doppia 
esecuzione del tuo mde
- una volta lanciato, il tuo mde salva lo stato di avanzamento 
elaborazioni da qualche parte (file d'appoggio?) ed elimina il file a 
fine elaborazione
- un vbs/bathc/quelChePreferisci schedulato verifica se c'e' access in 
esecuzione e controlla il contenuto del file d'appoggio di cui sopra, per 
verificare se c'e' il tuo mde in esecuzione e se sta effettivamente 
facendo qualcosa oppure e' inchiodato
- l'oggetto di cui al punto precedente che tenta di ammazzare la copia di 
access in esecuzione se ci son rogne (previa verifica che sia il tuo mde) 
oppure lancia il tuo mde nel caso in cui sia tutto a posto
decisamente macchinoso...
-- 
Paolo opg
BE AWARE that this post uses a fake reply-to address
to contact me write to:
janickg ( at ) hotmail ( dot ) com
--


L'as400 � un carroarmato poco flessibile ma robusto quanto odioso quanto 
stabile
Non posso, ma sarebbe l'ideale 

 Ciao.

 Ciao.
Ciao ragazzi e meno ragazzi a domani

 stesse credenziali di WinXP.
Scusate se mi intrometto, hai solo gli odbc installati o tutto il
Client Access dell'IBM?
Io uso un batch all'avvio dei client per loggarli all'AS
una cosa tipo
"c:\programmi\ibm\client access\cwblogon.exe" ip_del_server /u CAUSER /
p CAUSER
Altra cosa, dal vbs potresti verificare l'esistenza del .ldb dell'mde
per bloccare o passare ai step successivi del processo.
Ciao
Ale

 Ale

 Ciao.
A rieccomi 

 A rieccomi
Non ho altre soluzioni; hai dei vincoli molto stretti e (ripeto) non so' se 
ï¿½ possibile (aridaje!) "tirare fuori" gran parte delle operazioni.
Altra possibilitï¿½; potrebbe essere quella di dividere (in altri mde) in 
blocchi di operazioni il tuo mde. Ma non credo sia anche questa la via per 
andare in paradiso...
Ciao.
-- 
Sergio MAZZA 

 Ciao.
In ogni caso al di l� di separare le operazione tra due mde o piuttosto tra 
un mde e un vbs resta sempre il problema delle schedulazione hide e non hide
Operazione pianificate da linea di comando � in grado di darmi supporto?
Grazie
Per il paradiso invece credo che tutti abbiamo un biglietto di ingresso. 
Bisogna stare attenti a non smarrirlo.
Ciao 

 janickg ( at ) hotmail ( dot ) com
Che ne pensi se utilizzo schtask.exe da linea di comando?
Grazie... anche se in ritardo.
Daniele

 Ciao
Ciao.
-- 
Sergio MAZZA