Newsgroup: it.comp.appl.macromedia
Titolo: Flash4 e Database

Ciao a tutto il NG!
Mi chiedevo come fosse possibile far comunicare Flash e un database Access,
su una unità CDROM al di fuori di una architettura Client-Server.
Un esempio tipico sarebbe proprio la realizzazione di un catalogo su CD ROM.
Grazie a chi volesse rispondere anche con qualche linea di codice.
Buon Lavoro a tutti.
Federico

 Un esempio tipico sarebbe proprio la realizzazione di un catalogo su CD ROM.
Che io sappia (ma vi invito a smentirmi se mi sbaglio) è possibile solo su di
una architettura client server usando degli script lato server. Una soluzione è
quella di esportare il database di access in un testo compatibile con la
sintassi richiesta da flash per importare variabili da file .txt. Forse per una
applicazione di tipo catalogo su cd rom sarebbe più adatto director: esistono
degli extra specifici per estrarre dati da un database access, anche con
immagini.
Stefano

Io ho realizzato un programma in Director 7 per gestire i database.
Prova a scaricare il demo all'indirizzo:
www.areaitalia.it/areadb
e fammi sapere cosa ne pensi.
Il trucco è semplice:
devi convertire il tuo archivio in ACCESS, DBIV, EXCEL ecc. in un formato
virgola mobile e poi creare una lista (come specificato in Director)
A questo punto Director può leggere il file e trattarlo come database.
Fammi sapere se è quello a cui pensavi e ti darò ulteriori delucidazioni in
merito.
ENRICO
enrico....@libero.it


Ciao Federico.
Il tutto è possibile attraverso un po' di scripting...
Di seguito un piccolo esempio di codice JScript... ovviamente testato solo
su IE ;) e con FLASH 4.
metti che nel tuo documento HTML hai un tuo movie Flash con ID=Movie1
aggiungi due tag <OBJECT>:
<OBJECT id=cnn RUNAT="client"
classid="clsid:00000514-0000-0010-8000-00AA006D2EA4"></OBJECT>
<OBJECT id=rs RUNAT="client"
classid="clsid:00000535-0000-0010-8000-00AA006D2EA4"></OBJECT>
il primo creerà un oggetto connessione (ADODB.Connection) per connetterti al
tuo file mdb
il secondo creerà un oggetto recordset (ADODB.Recordset) per manipolare i
dati che ti interessano
aggiungi uno script:
<script>
cnn.Open ("Driver={Microsoft Access Driver (*.mdb)};
DBQ=nome_del_mio_database.mdb");
Query = "SELECT * FROM [NOMETABELLA]";
rs.Open (Query, cnn, 1);
function read(index)
{
    rs.Move(index, 1);
    Movie1.setvariable("NomeDellaVariabileFlash", rs("NomeDelCampo"));
}
</script>
Nel movie FLASH puoi richiamare la funzione javascript read() con un
"GetURL"
(ad esempio alla pressione di un pulsante)
che aprirà il documento "javascript:read(" & index & ")"
nella pagina "_self"
la funzione read() si sposta al numero di record voluto (index) e imposterà
una tua variabile FLASH con il valore del campo desiderato...
Si tratta di un banale esempio, ma con lo stesso criterio puoi ottenere
tutti i risultati che vuoi.
Il tutto funziona stand-alone senza interazioni con server.
Anche il database sarà locale.
Se il mio esempio non è stato chiaro, o se ti interessano altre info,
contattami pure in e-mail o continua
il thread in NG se ritieni che la problematica possa interessare tutti ;)
Comunque ritengo che sarebbe opportuna una minima conoscenza di ActiveX e
ADO......
Ciao! Buon lavoro!
=WereWolf=

 DBQ=nome_del_mio_database.mdb");
Scusatemi!
ho banalmente trascurato il fatto che per funzionare in questa maniera, DEVE
essere installato il driver ODBC per database ACCESS sul PC dove il tutto
dovrà girare.
I driver ODBC e MDAC (Microsoft Data Access Components) possono essere
liberamente scaricati da
http://www.microsoft.com/data/download.htm
 e ridistribuiti.
Ciao tutti!
=WereWolf=

Grazie WereWolf per la tua spiegazione, è una soluzione molto interessante che
vale la pena di approfondire. La mia domanda a questo punto riguarda l'eventuala
installazione dei driver odbc se sulla macchina su cui verrà fatto girare il cd
non sono presenti e/o configurati. E' possibile farlo su qualunque macchina in
modo trasparente per l'utente? Mi spiego meglio: la mia osservazione nasce della
lettura di alcuni messaggi sul NG dedicato a director, in cui un utente che
voleva appunto usare una connessione ad un db con director lamentava della
difficoltà di implementazione di questa procedura di installazione. Inoltre la
comodità dei projector è proprio il fatto che per farli girare basta il plugin,
e non è necessario imporre all'utente nessuna procedura di installazione, che
rappresenta una complicazione che se possibile dovrebbe essere evitata. Concludo
ripetendo che non ritengo così semplice la strada suggerita da Werewolf, e forse
in alcuni casi non funzionante. Passo la palla a chi vorrà tacciarmi di
pessimismo...
Stefano

 in alcuni casi non funzionante.
"semplice"... dipende dai punti di vista...
"funzionante"... beh... nulla è sicuro al 100%... ma ti assicuro che
funziona :)))
Allora... tutto dipende da COSA si vuole ottenere...
ODBC e MDAC sono componenti talmente comuni nel mondo Windows da non
comportare più complicazioni di quanto non lo faccia l'installazione del
player FLASH... Ovviamente questa soluzione è valida solo nel caso in cui si
voglia interagire DIRETTAMENTE con un database, che sia ACCESS, PARADOX,
DBASE, SQL Server, etc...
Molto probabilmente chi deve pubblicare un CD-ROM con un listino prezzi, può
semplicemente basarsi su un "database" registrato su un semplice file di
testo...
Ripeto: dipende da cosa esattamente si vuole ottenere... la mia soluzione
potrebbe apparire come un colpo di bazooka contro una mosca... ma in altri
casi la soluzione su file di testo potrebbe essere inadeguata per
sconfiggere un problema più grosso di una mosca :)
(per esempio, svariati tipi di ricerche, filtraggi, legami tra tabelle
diverse in un database molto vasto funzionerebbero senz'altro meglio
lavorando su un database Access piuttosto che su lunghe liste di record in
un file TXT)
In un modo o nell'altro, anche per interagire con un database su file di
testo, preferirei usare il componente TDC (Tabular Data Control) che
dovrebbe essere parte dell'installazione "standard" di Windows98 e IE5...
Attenzione: TUTTO il mio discorso è basato esclusivamente su sistemi
Windows/IExplorer.
Spero comunque di esser stato d'aiuto in qualche modo... :)
Ciao tutti!
=WereWolf=

 funziona :)))
Non sono mica in dubbio sul fatto che possa funzionare o no,  la mia
questione se vogliamo è più filosofica ;-)
Il mio dubbio ripeto riguarda essenzialmente la compatibilità; per essere
sicuri che funzioni ci vorrebbe:
-un browser comnpatibile con js e che supporti le connessioni a database (in
pratica explorer nelle ultime versioni...)
-i driver odbc installati sulla macchina dell'utente
Allora per avere la certezza che funzioni devi obbligare l'utente ad
installare explorer, devi installare i driver odbc etc per l'accesso al
db... insomma a mio parere non certo una cosa impossibile, ma se si possono
usare altre strade... personalmente quando realizzo cd rom evito procedure
di installazione per quanto mi sia possibile: l'utente inserisce il cd e
questo parte subito senza tante procedure noiose, senza fare richieste
strane (immagino che sia opportuno richiedere all'utente se vuole installare
i driver odbc... magari molti non sanno neanche cosa siano). Quindi non
entro nel merito tecnico della questione che infatti non discuto ;-)...
Ciao
Stefano