Salve, in un applicativo basato su DB Access utilizzo questa Query con esito positivo :
SELECT * FROM [SELECT Albero_Web.Key_Prodotto AS Albero_Web_Key_Prodotto,* FROM Albero_Web WHERE Albero_Web.Profondita_Nodo=1 AND ( Albero_Web.Key_Mercato LIKE '%/1/%' OR Albero_Web.Key_Mercato IS Null OR Albero_Web.Key_Mercato='' ) AND (Albero_Web.Key_Gruppo IS Null OR Albero_Web.Key_Gruppo='') ORDER BY Albero_Web.Ordine ASC ]. AS T_Node_Data LEFT JOIN Data_Nodo ON T_Node_Data.Albero_Web_Key_Prodotto=Data_Nodo.Key_ Prodotto;
Ora eseguendo la stessa su SQL Server 2005, ma con esiti negativi.
Ovvero in prima istanza mi genera l'errore errore :
"La lunghezza del valore identificatore che inizia con 'SELECT Albero_Web.Key_Prodotto AS Albero_Web_Key_Prodotto,* FROM Albero_Web WHERE ( Albero_Web.Percorso = '|R|' OR Albero_Web. è eccessiva. La lunghezza massima consentita è 128. "
Se riduco la lunghezza della query che genera la sub tabella in :
SELECT * FROM [SELECT Albero_Web.Key_Prodotto AS Albero_Web_Key_Prodotto,* FROM Albero_Web ]. AS T_Node_Data LEFT JOIN Data_Nodo ON T_Node_Data.Albero_Web_Key_Prodotto=Data_Nodo.Key_ Prodotto;
l'errore generato mi cambia in :
"Sintassi non corretta in prossimità della parola chiave 'AS'. "
Se modifico nuovamente la query in :
SELECT * FROM [SELECT Albero_Web.Key_Prodotto AS Albero_Web_Key_Prodotto,* FROM Albero_Web ] AS T_Node_Data LEFT JOIN Data_Nodo ON T_Node_Data.Albero_Web_Key_Prodotto=Data_Nodo.Key_ Prodotto;
eliminando il "." dopo le quadre che mi identificao la quesry della sub tabella, l'errore generato mi cambia in :
"Il nome di oggetto 'SELECT Albero_Web.Key_Prodotto AS Albero_Web_Key_Prodotto,* FROM Albero_Web ' non è valido."
Non vorrei che la definizione iniziale della mia sub tabella generata dalla query annidata si errata.
Come connettori al SQL Server 2005 utilizzo gli ADODB.Recordset.
Grazie a tutti anticipatamente.