asp - asp.net - aspcode.it

COMMUNITY - Login
 Username:
 
 Password:
 
Voglio registrarmi!
Password dimenticata?
 Utenti on-line: 0
 Ospiti on-line: 8048
ASPCode.it - Store

  > > Articoli

Spostarsi tra i Database MySQL

Data di pubblicazione: 29/07/2002        Voto della community: 4,00 (Votanti: 1)


Abbiamo già visto come stabilire una connessione con un server MySQL tramite ASP. Ora vediamo come spostarsi tra i vari database che esso contiene e ottenere alcune informazioni di base.

Partiamo subito con un esempio pratico, per capire come si ottiene una lista dei database presenti sul server MySQL.

<%

' apro la connessione
Dim con
Dim rs
Set con = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.RecordSet")
conn.Open "Driver={MySQL};Database=mydatabase;UID=dario;PWD=ciotto129;"

' lancio la query
Set rs = con.Execute("SHOW DATABASES")
Response.Write "<b>Database presenti sul server:</b><p>"

' scorro il record set fino alla fine
Do While Not rs.Eof
  Response.Write rs("database") & "<br>"
  rs.MoveNext
Loop

' chiudo la connessione
rs.Close
Set rs = Nothing
con.Close
Set con = Nothing

%>

Il primo blocco di istruzioni è già stato discusso nell'articolo "Connettersi a un database MySQL", per cui non ripeteremo quanto già spiegato. Una volta effettuata la connessione, eseguiamo una query in linguaggio SQL: "SHOW DATABASES". Questa istruzione chiede a MySQL di mostrare tutti i database presenti sul server; in risposta si ottiene un record set composto da un unico campo chiamato "database". Con il ciclo While mostriamo tutti i record trovati, cioè i nomi dei database. Infine chiudiamo la connessione.

Negli esempi successivi, per evitare di ripeterci, tralasceremo la parte di apertura di una connessione e la relativa chiusura. Chiaramente però, per poterli provare, occorrerà inserire nel codice della pagine anche queste parti.

Vediamo ora come accedere a uno dei database trovati e poi mostrare tutte le tabelle in esso presenti. Poniamo che il database che ci interessa si chiami "hal_9000".

<%

con.Execute("USE hal_9000")

Set rs = con.Execute("SHOW TABLES")
Response.Write "<b>Tabelle presenti nel database hal_9000:</b><p>"

Do While Not rs.Eof
  Response.Write rs("Tables_in_hal_9000") & "<br>"
  rs.MoveNext
Loop

%>

Con l'istruzione USE hal_9000 accediamo al database hal_9000. In realtà ci troviamo già in un database chiamato mydatabase, come indicato nella connection string in fase di connessione, ma questo non ci impedisce di selezionare un nuovo database (uscendo così dal precedente).
L'istruzione SHOW TABLES chiede a MySQL una lista di tutte le tabelle presenti nel database in cui ci troviamo. Viene restituito un record set composto da un campo chiamato "Tables_in_" seguito dal nome del database ("Tables_in_hal_9000").

Si potrebbe ottenere la lista delle tabelle presenti in un database senza accedervi, come mostra il prossimo esempio:

<%

Set rs = con.Execute("SHOW TABLES FROM hal_9000")

%>

Questa istruzione è più veloce, almeno nel caso in cui dopo averla eseguita non accederemo al database.
E' possibile infine utilizzare una clausola LIKE, in modo da mostrare solo tabelle il cui nome corrisponda a un certo schema. Ad esempio, per visualizzare le tabelle che hanno un nome che contiene "user":

<%

Set rs = con.Execute("SHOW TABLES LIKE '%user%'")

%>

Si noti che, sia per SHOW TABLES, sia per SHOW DATABASES, non è possibile decidere il nome del campo arbitrariamente, con un'istruzione come SHOW TABLES AS nomecampo.

Se desideriamo invece sapere in quale database ci troviamo al momento, potremmo scoprirlo con la query seguente:

<%

Set rs = con.Execute("SELECT DATABASE() AS current_db")
Response.Write rs("current_db")

%>

DATABASE() è una funzione che restituisce il nome del database corrente.

Con questo abbiamo concluso la prima carrellata introduttiva sulle prime operazioni di base con MySQL. E' molto probabile che il lettore conosca già un qualche tipo di database, come magari Access. In questo caso non sarà abituato al concetto di accedere a un database dopo aver effettuato la connessione, quindi questo MySQL potrebbe apparirgli un po' strano. Le istruzioni più importanti però, come SELECT, INSERT, UPDATE e DELETE, posseggono la stessa sintassi di base che si può riscontrare in qualsiasi altro tipo di database relazionale. Man mano, anche con l'esperienza, si impareranno tutti quei parametri e quei trucchi che permettono di utilizzare MySQL nel modo ottimale...




Utenti connessi: 8048