Newsgroup: it.comp.www.asp
Titolo: Differenze sintattiche tra Access e SQL7

Salve a tutti,
come da oggetto vorrei sapere dove trovare qualche spiegazione sulle
differenze tra query.
Siccome devo convertire tanta tanta roba da Access a SQL7, avevo necessità
di sapere se tutte le mie belle paginette ASP saranno compatibili solo
cambiando l'origine dati.
Spero in un vostro aiuto
Grazie.
Stefano

Dipende.
In teoria, se le query sono fatte in SQL standard, funzionano sia con Access
che con SQL Server 7.
In pratica, invece, un sacco di persone preferiscono costruire la query
automaticamente in access, copiare lo script SQL (orrido) che ne risulta, e
incollarlo nel codice.
Il risultato di tale attività è che le query non funzionano praticamente MAI
su SQL Server 7.
Tuttavia (ripeto), se le query erano state progettate "a mano", in genere
basta:
1) modificare il carattere di delimitazione stringhe (per Access si può
utilizzare il doppio apice ("), mentre SQL accetta l'apice (')
2) modificare il carattere jolly nelle LIKE: Access accetta l'asterisco (*),
mentre in SQL si utilizza il segno di percentuale (%).
Insomma:
ACCESS: SELECT ID FROM Pagine WHERE Testo LIKE "*ciao*"
SQL:    SELECT ID FROM Pagine WHERE Testo LIKE '%ciao%'
Inoltre, tieni conto che non sempre la conversione implicita tra tipi di
dati è implementata nello stesso modo in SQL Server ed Access.
Romeo_


Aggiungo: distinct restituisce risultati diversi se eseguito in access o sql
(distinctrow mi sembra che non esista in sql7)
Cosě a memoria non me ne vengono in mente altre.

Ci vorrebbe un giochino da geek:
"Quale query creata con l'autocomposizione e/o in qmbiente grafico produce
esattamente gli stessi risultati sia in Access che in SQL Server?"
Oppure:
"Cona NON bisogna fare in Access perché la query prodotta funzioni anche in
SQL Server?"
Romeo_
PS: e dire che sono tutti e due della MS...

le date in access mi pare che prevedono i #.
-- 
Fortunato Calabro'
INFORMATICA 2000 srl
http://www.virtualmarket.it

 ha scritto nel messaggio
news:99prk6$h7i$1...@fe2.cs.interbusiness.it...

Il carattere giolli ? va sostituito con _
Ciao
VoCIOnE!

Per le date, il mio spassionato consiglio è di riferirsi SEMPRE alle
funzioni di trasformazione tipi standard del DB in uso.
Ovvero: chi ci dice che cambiando macchina (e quindi impostazioni) la
conversione implicita delle date vada a buon fine, senza confondere il
formato "francese" (il nostro gg/mm/aaaa) con quello anglosassone
(dd/mm/yyyy)?
Meglio utilizzare la funzione SQL CONVERT (o CAST).
Esempio: selezioniamo i nati DOPO una certa data, contenuta in una variabile
"DataNascita". Il codice che costruisce la query dovrebbe essere una roba
del genere:
MySql = "SELECT * FROM Anagrafica"
MySql = MySql & " WHERE Data_Nascita >"
MySql = MySql & "CONVERT(datetime, '"
MySql = MySql & DatePart("d", DataNascita) & "/"
MySql = MySql & DatePart("m", DataNascita) & "/"
MySql = MySql & DatePart("yyyy", DataNascita) & "',"
MySql = MySql & "203)"  '{203 indica la trasformazione in data dd/mm/yyyy}
E' invece da suicida fare così:
MySql = "SELECT * FROM Anagrafica"
MySql = MySql & " WHERE Data_Nascita > #" & DataNascita & "#"
(a meno che non si faccia una pagina "pippo.asp" e che nessuno voglia il
sito su un server differente...)
Romeo_
PS: vi prego non mi uccidete se c'è qualche errorino... il codice non l'ho
provato...



Moderatore di it.comp.www.asp
Sito di supporto: 
http://www.aspitalia.com/newsgroup/
La più grande community italiana di sviluppatori!