Newsgroup: it.comp.www.php
Titolo: Sql non essquella... problema con order by , limit e like

nella mia maxi query per i prodotti del catalogo ho problemi con le
clausole order by, limit e like .
sono scritte correttamente, e dovrebbero funzionare, ma introducono un
errore di sintassi dell'sql.
non so proprio come fare.
potete aiutarmi??
di seguito allego il sorgente interessato, la query composta e l'errore
che ne viene fuori.
grazie
Giulio
 SELECT count(*) 
 FROM ((Products AS P INNER JOIN Manufactures AS M ON P.Manufact_Id =
M.Manufact_Id) INNER JOIN Prod_Class AS H ON P.Prod_Class_Cod =
H.Prod_Class_Cod) INNER JOIN Prod_Mat_Class AS J ON P.Prod_Mat_Class_Cod =
J.Prod_Mat_Class_Cod 
 WHERE (P.Stock Is Not Null) AND (P.Prod_Id_Manuf LIKE %0123% ) ;
Questo genera il seguente errore
Warning: SQL error: [Microsoft][Driver ODBC Microsoft Access] Errore di
sintassi nell'espressione della query '(P.Stock Is Not Null) AND
(P.Prod_Id_Manuf LIKE %0123% )'., SQL state 37000 in SQLExecDirect in
c:\programmi\apache group\apache\htdocs\modelli.php on line 65
SELECT P.Prod_Desc_Short, P.Prod_Id_Manuf, P.List_Price_Euro, P.Stock,
M.Manufact_Name, M.Manufact_URL, P.Prod_Desc_Long, H.Prod_Desc_Class_1,
H.Prod_Class_Cod, J.Prod_Desc_Class_2, J.Prod_Mat_Class_Cod 
FROM ((Products AS P INNER JOIN Manufactures AS M ON P.Manufact_Id =
M.Manufact_Id) INNER JOIN Prod_Class AS H ON P.Prod_Class_Cod =
H.Prod_Class_Cod) INNER JOIN Prod_Mat_Class AS J ON P.Prod_Mat_Class_Cod =
J.Prod_Mat_Class_Cod 
WHERE (P.Stock Is Not Null) AND (M.Manufact_Id = 3) 
ORDERBY M.Manufact_Name 
questo genera il seguente errore
Warning: SQL error: [Microsoft][Driver ODBC Microsoft Access] Errore di
sintassi (operatore mancante) nell'espressione della query '(P.Stock Is
Not Null) AND (M.Manufact_Id = 3) ORDERBY M.Manufact_Name'., SQL state
37000 in SQLExecDirect in c:\programmi\apache
group\apache\htdocs\modelli.php on line 88
ed è lo stesso errore che mi da la clausola limit.
5
***************************************
messaggio inviato tramite HostSearch.it
---------------------------------------
---> 
http://www.hostsearch.it/newsgroup
***************************************

 clausole order by, limit e like .
   Cosi` ad occhio mi viene in menti di pensare che:
   1) L'idioma "is not null" non sia supportato dal dialetto SQL di
      MS Access (controlla la manualistica);
   2) L'idioma "like %0123%" non sia supportato da nessun dialetto
      SQL che io conosca, giacche` l'operatore like opera su stringhe
      e non su numeri.
-- 
Alla prossima,
Marco

       e non su numeri.
in questo caso penso anche io... che posso provare per risolverlo?
il problema grosso però rimane, con le clausole limit e order by. 
L'errore è sicuramente introdotto da limit  e da orderby. e non so
assolutamente dove sbattere la testa, la sintassi è giusta, in access le
query funzionano correttamente..
che mi cosigliate?
grazie
Giulio


 che mi cosigliate?
   Purtroppo, le mie conoscenze nel merito finiscono qui; c'e` un gruppo 
di discussione nel quale si parla esclusivamente di Access 
(it.comp.database.access), prova a chiedere li`. Followup-To impostato.
-- 
Alla prossima,
Marco

 query funzionano correttamente..
In access non č limit ... semmai
"SELECT TOP 10 * FROM mytable WHERE ....
P.S. Se posti le query incriminate, č piů facile capire ...
Ciao
Devil
-----= Posted via Newsfeeds.Com, Uncensored Usenet News =-----
http://www.newsfeeds.com
 - The #1 Newsgroup Service in the World!
-----==  Over 80,000 Newsgroups - 16 Different Servers! =-----

 "SELECT TOP 10 * FROM mytable WHERE ....
top prende i primi n valori... non fa esattamente quello che
desidero... io vorrei prendere n valori a partire dall'h-esimo
valore.. oppure i valori da h a h+n.. (che č lo stesso)
come si fa in access?
intanto io faccio funzionare il mio sito prendendo tutti i risultati
ad ogni query.. scorrendo quelli prima di h e scartando quelli
successivi a h+n. ovviamente č moolto piů lento anche perchč spesso ho
piů di 1500 risultati.
grazie
Giulio