|
Esempi di connessione a database Microsoft Access |
|
|
|
|
Gaetano Luigi Matteo Cardinale | Giovedì 15 Aprile 2010 10:54 |
|
Su tutti i piani Windows è possibile utilizzare il database MS Access nel numero che desiderate. Qui di seguito sono riportati esempi di connessione a database MS Access in ASP (VBscript) e PHP
ATTENZIONE:
- Per far funzionare correttamente un database MS Access è necessario che il database e la cartella che lo contiene abbiano i permessi di scrittura anche se il database è in sola lettura. Infatti le librerie Microsoft che gestiscono l'accesso al database creano dei file temporanei (*.ldb) allo stesso livello del database (*.mdb), e qualora non vi fossero i permessi di scrittura IIS restituirebbe un errore 500.
- Potete inserire il database ovunque sul vostro spazio, ma vi sconsigliamo di inserirlo direttamente nella root del sito. In base all'osservazione precedente sareste costretti a mettere i permessi di scrittura su tutto il vostro sito.
Perché utilizzare MS Access?
- Vantaggio: potete creare facilmente il database utilizzando MS Office dal vostro pc, disponendo di una interfaccia facile e intuitiva
- Vantaggio: oltre a dover configurare i permessi di scrittura sulla cartella che ospita il db e sul db stesso non avete bisogno di altro
- Vantaggio: potete effettuare un back up del database quando desiderate semplicemente scaricandolo via FTP
Perché NON utilizzare MS Access?
- Svantaggio: lo svantaggio più grosso di MS Access, che è quello che costringe un programmatore ad utilizzare un supporto base dati differente, è la limitazione dichiarata da Microsoft sul numero di connessioni contemporanee al database, che è di 15. In pratica Microsoft non garantisce Access per più di 15 accessi contemporanei.
- Svantaggio: Ghostweb non esegue il backup dei vostri database MS Access, mentre esegue il backup giornaliero dei database MS SQL Server e MySql.
-
Connessione dsn-less con ASP
se / è la root web del vostro sito, supponiamo che stiate utilizzando il database posto nel vostro spazio nel percorso /database/esempio.mdb. Questo è un esempio di connessione:
<% Set conn = Server.CreateObject("ADODB.Connection") conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & server.MapPath("/database/esempio.mdb")
sql = "SELECT * FROM Tabella1" Set rs = Server.CreateObject("ADODB.Recordset") rs.Open sql, conn %>
-
Connessione dsn-less con PHP
Poiché da php è possibile utilizzare le librerie messe a disposizione da Windows tramite la direttiva new COM(), non è un problema connettersi ad un database access tramite la libreria ADODB. Supponiamo che abbiate un database di test al percorso testdb/testdb.mdb relativo rispetto alla posizione dello script.
<?php $percorso_database = realpath("testdb/testdb.mdb"); $connessione = new COM("ADODB.Connection"); $stringa_di_connessione = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=".$percorso_database; $connessione->Open($stringa_di_connessione); $interrogazione = "select * from categorie"; $recordset = new COM("ADODB.Recordset"); $recordset->Open($interrogazione,$connessione); $html_risultato =''; while (!$recordset->eof) { $html_risultato .= '<tr>'; $html_risultato .= '<td> '.$recordset->fields["idcategoria"]->value.'</td>'; $html_risultato .= '<td> '.$recordset->fields["nomecategoria"]->value.'</td>'; $html_risultato .= '</tr>'; $recordset->movenext(); } $recordset->close(); $connessione->close(); unset($recordset); unset($connessione); // HTML ?> <html> <head> <title> Test Connessione ADODB </title> <meta name="Generator" content="EditPlus"> <meta name="Author" content=""> <meta name="Keywords" content=""> <meta name="Description" content=""> </head> <body> <table border="1"> <tr> <th colspan="3"> <h3>Tabella Risultati Query: <?=$interrogazione?></h3> </th> </tr> <tr> <th>ID categoria</th> <th>Nome categoria</th> </tr> <?=$html_risultato?> </table> </body> </html>
Nonostante l'esempio sopra riportato sia piuttosto banale, si può evidenziare un aspetto fondamentale per l'ottimizzazione di uno script lato server, ovvero tutto il codice script, in particolare la chiusura della connessione e la distruzione degli oggetti $recordset e $connessione, è posto PRIMA del tag <head>. Questo significa che il server completerà tutta l'elaborazione del codice prima di inviare la pagina al client. Questo si risolve in una velocizzazione della navigazione e in un minor carico del server. In particolare, si riduce anche il tempo intercorso fra l'apertura e la chiusura della connessione, allontanando il punto critico per Access rispetto al numero dei visitatori del sito.
|
|
Ultimo aggiornamento Giovedì 15 Aprile 2010 11:19 |