Forum 

Forum AspNuke.it - Il tuo Portale OpenSource in ASP

AspNuke e mysql

Autore Messaggio
giorgio_anastasi

Amatore
Amatore
26 Discussioni



Profilo - giorgio_anastasi
20 febbraio 2003 alle 15:28:22 Profilo - giorgio_anastasiInvia un messaggio privato Rispondi quotando
Qualcuno di voi ha provato ad usare, invece che access, mysql come Db ?
A me cambiando la stringa di connessione (mettendo quella corretta ovviamente, e di questo ne sono sicuro perchè la utilizzo in un progetto in vb), mi da degli errori.
Grazie e sarebbe bello poter usare mysql.
emu

Moderatore

Esperto
Esperto
1714 Discussioni



Profilo - emu
20 febbraio 2003 alle 16:04:24 Profilo - emuInvia un messaggio privato Rispondi quotando
Cerca nel forum (ma prima di chiedere non lo fa mai nessuno?), e vedrai che molti altri hanno gia' fatto la stessa domanda, ed ottenuto la stessa risposta:
no, attualmente non e' possibile, poiche' le sintassi SQL di Access e MySql sono diverse (ecco il motivo degli errori da te riscontrati).
Ciao

Emu (n)
---------------
development@aspnuke.it
rauz

Eliminato
Eliminato
0 Discussione



Profilo - rauz
20 febbraio 2003 alle 17:00:26 Profilo - rauzInvia un messaggio privato Rispondi quotando

In MySQL non ho ancora provato a modificarlo !!

Ma ho gia fatto la conversione in SQL e gia funziona !!

In base al fatto che MySQL e SQL sono similari ti posso dire che oltre alla stinga di connesione è necessario modificare alcune query, il tutto è dovuto al fatto che SQL e MySQL ad esempio passano come valiri 1 o 0 mentre access puo passare vero o falso !!

Quindi verifica le query !!
Rimango a disposizione per ulteriori suggerimenti !
emu

Moderatore

Esperto
Esperto
1714 Discussioni



Profilo - emu
21 febbraio 2003 alle 11:09:44 Profilo - emuInvia un messaggio privato Rispondi quotando
Vorrei solo aggiungere che l'istruzione "TOP" di Access (e SQL Server) NON ESISTE sotto MySql ("LIMIT" agisce PRIMA dell'ORDER BY, e non dopo, quindi ottiene risultati diversi). In questo MySql somiglia a database piu' "seri", coem Oracle, ma cio' non toglie che questo limiti la compatibilità con i db Microsoft.
Giusto per essere chiari, vi faccio un esempio:
supponiamo di inserire in una tabella "tombola" nella colonna "numero" i numeri da 1 a 90 in ordine sparso.
Ossia prima inseriamo il 56, poi il 12, poi l'8, e cosi' via fino ad averli inseriti tutti.
A questo punto supponiamo di voler estrarre i primi tre numeri della tombola.
per Access scriveremo:
SELECT TOP 3 * FROM tombola ORDER BY numero

Risultato: 1, 2, 3
per MySql invece:
SELECT * FROM tombola ORDER BY numero LIMIT 3

Risultato: 8, 12, 56
OVVERO I PRIMI TRE ELEMENTI ORDINATI PER NUMERO, ANZICHE' I PRIMI TRE ELEMENTI DELLA LISTA ORDINATA!

E' chiaro che, se inserisco i numeri in ordine, il risultato invece e' uguale.
Se sto mostrando la lista degli articoli ordinata per data, probabilmente avro' risultati uguali perche' la data rispecchia per definizione l'ordine di inserimento (a meno che non sia stata modificata), ma se volessi ordinare con criteri diversi, otterrei risultati diversi.

Spero di non avervi annoiato con le mie spiegazioni, solo volevo chiarire che per usare MySql non basta cambiare solo le query, ma bisogna modificare anche un po' il codice asp (bisognerebbe quanto meno eliminare tutte le istruzioni TOP e limitare via codice il numero di righe mostrate nei cicli che scorrono i recordset).
Ciao

Emu
---------------
development@aspnuke.it
baxeico

Principiante
Principiante
5 Discussioni



Profilo - baxeico
15 maggio 2003 alle 01:23:27 Profilo - baxeicoInvia un messaggio privato Rispondi quotando
Sei sicuro di quello che dici? Hai fatto delle prove?
Io ho installato la versione 4.0.12 e ho fatto delle prove per vedere cosa fa LIMIT.
Ebbene, almeno nella mia versione "LIMIT n" prende i primi n record fra quelli ordinati con "ORDER BY" e non come dici tu i primi n record della tabella (per inserimento) ordinati dopo con "ORDER BY".
E ti dirò di più, guarda cosa si legge nel manuale di MySQL (versione 4.0.12) per raccogliere l'articolo con maggior prezzo da un ipotetico database di prodotti:

Another solution is to sort all rows descending by price and only get the first row using the MySQL-specific LIMIT clause:

SELECT article, dealer, price
FROM shop
ORDER BY price DESC
LIMIT 1

Se fosse come tu dici questa query restituirebbe sempre la prima riga della tabella e non certo l'articolo con il maggior prezzo.

Per quanto riguarda Aspnuke e MySQL volevo dirvi che ho convertito il portale per interfacciarsi a questo DB (vorrei farlo girare su Aruba senza problemi) e lo sto testando per trovare gli ultimi eventuali errori.
Comunque posso dire che in generale funziona a meraviglia e che se può interessare lo renderei disponibile alla Community.
Ho anche creato i file di dump con le query SQL per creare i database main e forum su MySQL in modo che il tutto sia facilmente installabile.

ciao a tutti [lo]
baxeico
emu

Moderatore

Esperto
Esperto
1714 Discussioni



Profilo - emu
15 maggio 2003 alle 06:21:10 Profilo - emuInvia un messaggio privato Rispondi quotando
Modificato il 15 maggio 2003 alle 06:48:18

Ne ero sicuro perche' ho installato MySQL sul mio Win 2000 ed ho fatto qualche prova.
Ma era MySQL 3.2x, non 4.0, quindi puo' essere cambiato.
Tuttavia cito dal manuale online di MySQL:

5.2.8 How MySQL Optimises LIMIT


In some cases MySQL will handle the query differently when you are using LIMIT # and not using HAVING:

If you are selecting only a few rows with LIMIT, MySQL will use indexes in some cases when it normally would prefer to do a full table scan.
If you use LIMIT # with ORDER BY, MySQL will end the sorting as soon as it has found the first # lines instead of sorting the whole table.

Dato che e' un problema di ottimizzazione delle query, puo' darsi che adesso (con il 4.0) il problema si verifichi
solo se sono presenti migliaia di record indicizzati in modi diversi, oppure che non abbiano ancora aggiornato il manuale online!.
Ciao
---------------
development@aspnuke.it
baxeico

Principiante
Principiante
5 Discussioni



Profilo - baxeico
15 maggio 2003 alle 11:54:31 Profilo - baxeicoInvia un messaggio privato Rispondi quotando
Boh, non è che vada fortissimo in inglese... però penso che questa frase:

If you use LIMIT # with ORDER BY, MySQL will end the sorting as soon as it has found the first # lines instead of sorting the whole table.

Si possa interpretare anche che MySQL, quando effettua un ordinamento con "ORDER BY" e c'è anche un "LIMIT n", non perde tempo ad ordinare tutta la tabella per poi prendere solo i primi n, ma ordina la tabella solo finchè non ha ordinato i primi n (che sono quelli che devono essere raccolti).

ciao
baxeico
emu

Moderatore

Esperto
Esperto
1714 Discussioni



Profilo - emu
15 maggio 2003 alle 23:50:05 Profilo - emuInvia un messaggio privato Rispondi quotando
Si, puo' essere come dici tu, ma se cerchi un po' su google, scopri facilmente che in molti hanno riscontrato il mio stesso problema. Tuttavia ho scoperto anche che il funzionamento della clausola LIMIT e' stato ritoccato nella versione 3.23.28, nella 3.23.38 e nella 4.0.0, quindi non mi stupirei affatto che adesso funzioni correttamente, mentre nella mia installazione (ed in quella usata fino ad oggi da moltissimi utenti) no.
Se e' cosi', ben venga la conversione di Aspnuke per mySQL!
Ciao

Emu
---------------
development@aspnuke.it
redbaron76

Avanzato
Avanzato
163 Discussioni



Profilo - redbaron76
16 maggio 2003 alle 10:42:44 Profilo - redbaron76Invia un messaggio privato bustio@hotmail.com 5034560 Rispondi quotando
E' inutile dire che, al di là dei soliti discorsi pro e contro Microsoft, MS SQL per AspNuke....è "la morte sua"...

Sto completando il porting del mio sito http://www.bisiacaria.com in SQL e il risultato è già visibile all'indirizzo http://www.mdbt.net/bisiacaria ....giudicate voi stessi in termini di caricamento (manca qualche immagine, lo so...). E' un altro mondo!

Quando finisco questo trasferimento, sarà mia cura preparare un articolo che spiega come abbandonare Access per passare su MS SQL.

Anche l'uso di MySQL è naturalmente possibile ma l'intervento sul codice di AspNuke, in particolar modo sulle queries, è decisamente più "aggressivo" e richiede un po' più di competenza.

Poi c'è sempre il solito dilemma...

Vale la pena Avere un database relazionale sotto per andare più veloci se poi il vostro provider è Aruba?? ;)


Se avete bisogno di prestazioni, allora investite qualche euro in più e prendetevi un provider "serio"....che difficilmente vi proporrà MySQL su piattaforma Microsoft.

Se invece il vostro scopo è quello di provare MySQL...beh... allora le cose cambiano ma, a mio avviso, non è certo la soluzione migliore....
---------------
Saluti e baci...

Red il bisiaco
http://www.bisiacaria.com
billo80

Amatore
Amatore
43 Discussioni



Profilo - billo80
16 maggio 2003 alle 11:14:29 Profilo - billo80Invia un messaggio privato Rispondi quotando
Complimenti (!) (o)
Sia con la linea analogica che con quella digitale il risultato è sconcertante (r)
Attendiamo con impazienza il tutorial [feu] [lo]
---------------
Il silenzio è d'oro, specialmente quando non si ha nulla da dire...
 1  2  >>

Log in

Login
Password
Memorizza i tuoi dati:

Cerca

 

Sostieni AspNuke

Un piccolo gesto per aiutarci a mantenere AspNuke.it online

Promo

MusicWebItalia.it
Video Testi Traduzioni Spot Colonne sonore Accordi e Spartiti gratis.

Visitatori

Visitatori Correnti : 174
Membri : 0 offline Anna

Iscritti

 Utenti: 18940
Ultimo iscritto : glauco
Lista iscritti
Messaggi privati: 3373 Commenti: 2210 Immagini: 39 Downloads: 144 Articoli: 49 Pagine: 101 Siti web: 558 Notizie: 180 Sondaggi: 11 Preferiti: 5685133 Post sui forum: 51195 Libro degli ospiti: 4 Eventi: 7

Versioni

Temi