SPERIMENTALE
questa versione è passabile di modifiche fino al raggiungimento della più stabile 1.2
se avete piacere di testarla, potrete consigliarmi 
la prima versione la trovate qui:
http://forum.html.it/forum/showthrea...hreadid=873561
come è già spiegato di la, questa classe serve a creare facilmente tabelle tramite codice senza doversi preoccupare che vadano su un DB mysql o mdb.
---
le novità di questa minorversion sono comunque consistenti
permettono infatti di creare campi indicizzati (index) e relazioni (foreign key)
non è molto personalizzata (per questo maneggiatevela un minimo), in pratica crea relazioni semplici (uno-a-molti, senza constraint) e indicizzazioni (singole o multicampo, duplicati ammessi)
---
la classe la trovate qui
http://www.imente.it/freesoftware/cr...atetable11.zip
---
come usare la classe
esempio completo
codice:
<%
'FUNZIONE DI ESECUZIONE QUERY
'al posto di CONN utilizzate il vostro oggetto di connessione, attenzione che sia già stata aperta prima (conn.open...)
sub execsql(sqlstring)
on error resume next
dim tmpsql,tmpi
tmpsql = split(sqlstring,";")
for tmpi = 0 to ubound(tmpsql)
if tmpsql(tmpi) <> "" then conn.execute tmpsql(tmpi)
if err <> 0 then response.write tmpsql(tmpi) &"
": response.write err.description: response.end
next
end sub
'creo un'istanza della classe
dim obj
set obj = new splik_createtable
obj.database = "mdb" 'oppure "mysql"
'***creo una tabella
'imposto i campi
call obj.clear()
call obj.addField("id", "counter", "")
call obj.addField("nome", "varchar", "100")
call obj.addField("cittaid", "long", "")
'imposto gli indici (anche più di uno)
'L'INDICE SUL CAMPO COUNTER E' IMPOSTATO AUTONOMAMENTE
call obj.addIndex("cittaid","cittaid")
'genero la query e la eseguo
call execsql(obj.createtable("impiegati"))
'***creo una tabella
'imposto i campi
call obj.clear()
call obj.addField("id", "counter", "")
call obj.addField("nomecitta", "varchar", "100")
'genero la query e la eseguo
call execsql(obj.createtable("citta"))
'***creo le relazioni
'aggiungerle con addkey, e poi eseguirle
call obj.clear()
call obj.addKey("nomerelazione","impiegati","cittaid","citta(id)")
'obj.addKey...
call execsql(obj.createconstraint())
'distruggo l'oggetto
set obj = nothing
'---
'infine volendo si possono popolare le tabelle
'SQL = "INSERT INTO........"
'conn.execute SQL
%>
---
se avete esigenze particolari, ditelo
può essere utile ampliare la classe
la prossima versione avrà un minimo di personalizzazione nella costruzione delle relazioni (e nei duplicati per gli indici)
---
WARNING
in MDB le relazioni sono quasi sempre funzionanti
in MYSQL invece le relazioni devono essere rigorose.
fate attenzione che i campi che mettete in relazione, siano di tipo compatibile (preferibilmente STESSO tipo), che siano entrambi NOT NULL oppure "NULL" (accettino valori null) e che siano entrambi (nel caso numerico) UNSIGNED o "SIGNED" (con segno)
---
se avete domande fate pure.
se la cosa vi è assoltuamente ostica e non capite il senso di questo lavoro, mandatemi un PM che vi spiego.
saluti