[Roma.pm] cestinando windows sui server...

Ortolani Dante d.ortolani at ecosystemspa.com
Thu Feb 1 00:24:41 PST 2007


Ciao Emanuele,
un piccolo articolo per perl.it no??
Un saluto e a presto
Luca

P.s. ragazzi che figata Text::Autoformat guardate come ha formattato 
il messaggio replicato su 70 colonne mantenendo i paragrafi numerati!


> > Il primo passo è fatto, un server linux gira nella mia azienda e
> > con Apache + Perl CGI (che usano WriteExcel) svolge in pochi
> > secondi compiti che prima richiedevano decine di minuti con la
> > preesistente (rigida) soluzione ASP + VBA + MSSQL.
>
> Bravo e grazie! :-) Oltre ad aver reso un servizio alla tua azienda,
> hai anche contribuito (ancora una volta) alla diffusione di Perl,
> che de 'sti tempi di accerchiamento da parte di Java da un lato, di
> .NET dall'altro, di Python da sopra e di Ruby da sotto, è una cosa
> quanto mai utile.
>
> > Ora mi sto preparando al prossimo passo: presumibilmente dovrò
> > essere in grado di leggere file di Askia (ovvero dei file di
> > MSAccess rinominati in .QES) ed estrarne i dati per poterli
> > aggregare in file Excel.
> >
> > Mi sono fatto il solito giretto su CPAN e su google, quello che mi
> > frena da una soluzione basata su ODBC è che in realtà dovrei
> > uploadare dinamicamente dei file di MSAccess da parsare al volo.
> > Vista (wow!) la summa delle esperienze qui presenti, qualcuno di
> > voi ha già sperimentato una soluzione decente per un simile
> > compito?
>
> Allora, standoci (o meglio essendoci stato) dentro fino al collo, te
> dico le varie soluzioni sperimentate nel corso degli anni.
>
> 1.Esportazione del file mdb in file di testo: Access permette di
>   farlo piuttosto facilmente (sia in formato CSV che con campi a
>   lunghezza fissa), mediante una cosiddetta "specifica di
>   esportazione", che si crea con Access medesimo a colpi de mouse, e
>   che poi è utilizzabile da VBA. OK, probabilmente *non* è quello
>   che serve a te, ma lo cito per completezza e perché è la soluzione
>   che stiamo adottando per lavoro proprio adesso, in una situazione
>   del tutto simile alla tua: dobbiamo prendere il back-end di una
>   nota applicazione in uso in ambito medico-ospedaliero, che alla
>   fine è una volgare applicazione VBA, che esporta il back-end anche
>   in formato testo. Magari controlla se la tua "Askia" può fare
>   altrettanto, potresti risparmiarti un sacco di ca... Ehm, di
>   pruriti nel fondo schiena.
>
> 2.Se fossi sotto Windows, potresti connetterti al db access (ovvero
>   al file mdb) via DBI mediante DBD::ADO: 
http://search.cpan.org/~sgoeldner/DBD-
>   ADO/
>
> L'ho usato e va benissimo ma, come detto, gira solo sotto Windows,
> per cui tu dirai: che me lo stai a di' a fa'?! Perché può tornare
> utile nello scenario 4 sotto descritto...
>
> 3.Tutto sotto Linux, senza alcuna contaminazione con Windows. In
>   questo caso corri a scaricare gli mdbtools:
>   http://mdbtools.sourceforge.net/
>
> dei quali puoi servirti un 2 diversi modi:
>
> 3A. Ti connetti al file mdb via DBI mediante DBD::ODBC, sfruttando
> il driver ODBC per *nix incluso negli mdbtools. Ricordo che a suo
> tempo dovetti bestemmiare un po', ma alla fine funzionò a dovere
> (essendo passato del tempo, gli mdbtools si sono evoluti e magari
> ora anche il set-up sarà più semplice).
>
> 3B. (Meglio) sfrutti il tool di conversione di mdbtools (magari
> automatizzandone l'uso con apposito scriptino Perl) che importa i
> dati del file mdb in un db tipo PostgreSQL o MySQL, così ti ritrovi
> i dati direttamente dentro un db-server al quale potrai accedere via
> DBI (sotto Linux) senza alcun problema. Con questa soluzione, in
> pratica, il file mdb non lo vedi proprio e cominci a lavorare
> direttamente con un db "serio".
>
> 4.Soluzione mista: la tua applicazione Perl gira sotto Linux, ma il
>   file mdb lo lasci sulla macchina Windows. Se questa strada fosse
>   per te praticabile, si può implementare facendo girare dbiproxy.pl
>   (e quindi DBI::DBI::ProxyServer)
>   http://search.cpan.org/~timb/DBI/dbiproxy.PL
>   http://search.cpan.org/~timb/DBI/lib/DBI/ProxyServer.pm
>
> sulla macchina Windows: dbiproxy si connette al file mdb locale
> mediante DBD::ODBC o DBD::ADO, e tu da Linux ti connetti al proxy
> (mediante DBD::Proxy).
>
> Il vantaggio di questa soluzione è che salti a pie' pari il
> treasferimento del/dei file mdb dalla macchina Windows alla macchina
> Linux, che anche quello può essere una rogna, se lo devi schedulare.
> Lo svantaggio è che richiede un'applicazione aggiuntiva
> (dbiproxy.pl) in esecuzione (e quindi da amministrare) sulla
> macchina Windows.
>
> Insomma, in un modo o nell'altro alla fine se fa, tutto (o quasi)
> con Perl ;-)
>
> Se incontri problemi specifici, fammi sapere.
>
> Ciao, Emanuele.
>
> _______________________________________________
> Roma mailing list Roma at pm.org
> http://mail.pm.org/mailman/listinfo/roma
>
>
>


Luca Dante Ortolani
-------------------------------------
Direzione Amministrativa e Commerciale
Ecosystem S.p.A.


More information about the Roma mailing list