Salve,
ho una grid "hhh_grid_products_for_order" che funziona con una query abbastanza normale dove ho inserito una WHERE finale per aver solo i prezzi dell'anno in corso
SELECT
......
.....
FROM products
LEFT JOIN price_list ON (products.ProductID = price_list.ProductID) AND (price_list.CustomerID = '[glo_CustomerID]' )
LEFT JOIN categories ON (products.CategoryID = categories.CategoryID )
LEFT JOIN price_list_std ON (products.ProductID = price_list_std.ProductID)
WHERE (price_list_std.RefYear = YEAR(CURDATE()) )
ORDER BY price_list.UnitPrice DESC
Ovviamente provata direttamente in mySLQ in tutte le salse e funziona perfettamente.
Dalla grid, tramite bottone , mi sposto su una FORM per delle verifiche e poi sempre con bottone ritorno alla grid sopracitata.
Codice del bottone di ritorno
[glo_flag_search]=1;
sc_redir(hhh_grid_products_for_order, parm1='[glo_CustomerID]', "_parent");
sc_exit();
Quando clicco sul bottone di ritorno mi appare questo strano errore con la WHERE clause raddoppiata .
Errore
Errore durante l'accesso alla banca dati:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'where price_list_std.RefYear = YEAR(CURDATE())' at line 1
select count(*) from products LEFT JOIN price_list ON (products.ProductID = price_list.ProductID) AND (price_list.CustomerID = 'C630' ) LEFT JOIN categories ON (products.CategoryID = categories.CategoryID ) LEFT JOIN price_list_std ON (products.ProductID = price_list_std.ProductID) where (price_list_std.RefYear = YEAR(CURDATE()) ) where price_list_std.RefYear = YEAR(CURDATE())
Ho perso 2 giornate e ho fatto di tutto ma veramente non riesco a venircene fuori.
Perchè mi raddoppia la WHERE ????
HELP !!!!
WHERE clause raddoppiata con sc_redir ???
Regole del forum
Nel forum è vietato fare pubblicità senza avere l'autorizzazione dello staf di Netspecial.
Nel forum è vietato fare pubblicità senza avere l'autorizzazione dello staf di Netspecial.
-
- Messaggi: 116
- Iscritto il: 06 ott 2014, 08:56
Re: WHERE clause raddoppiata con sc_redir ???
sto leggendo casualmente e non ho SC aperto ma non esiste una voce sulla gestione del link che parla di mantenimento clausola where? mai usata ma non potrebe essere?
Se non en vieni fuori controlla ad inizoi app se la condizioen where è piena o vuota . l esempio lo trovi nel manuale in corrispondenza dell amacro per gestirel a where . tacconi il problema ma almeno vai avanti.
Al momento io non so cos altro dirti tranne che una query dle genere la farei via view , ho notato che i campi generati dalle query non li gestisce bene in caso di odrinementi sulle grigile. Inoltre milgiori i tempi di elaborazione perchè le viste sono immediatamente usabili e "pesano" solo nel momento di generazione /modifica del record originale , sui grandi numeri la differenza è sensibile. Ovviamente la clausola where la gestisci dentro l app
Se non en vieni fuori controlla ad inizoi app se la condizioen where è piena o vuota . l esempio lo trovi nel manuale in corrispondenza dell amacro per gestirel a where . tacconi il problema ma almeno vai avanti.
Al momento io non so cos altro dirti tranne che una query dle genere la farei via view , ho notato che i campi generati dalle query non li gestisce bene in caso di odrinementi sulle grigile. Inoltre milgiori i tempi di elaborazione perchè le viste sono immediatamente usabili e "pesano" solo nel momento di generazione /modifica del record originale , sui grandi numeri la differenza è sensibile. Ovviamente la clausola where la gestisci dentro l app
Rino Lo Turco
Consulente Informatico; Analista e Sviluppatore; ex IT Manager; Cons. Direzionale di Organizzazione; Consulente Tecnico legale; Esperto protezione dati personali; Internet Service Provider
felice utente e fruitore di ScriptCase
Consulente Informatico; Analista e Sviluppatore; ex IT Manager; Cons. Direzionale di Organizzazione; Consulente Tecnico legale; Esperto protezione dati personali; Internet Service Provider
felice utente e fruitore di ScriptCase
-
- Messaggi: 116
- Iscritto il: 06 ott 2014, 08:56
Re: WHERE clause raddoppiata con sc_redir ???
Ciao Rino e grazie.
Ho fatto una prova e cioè ho cancellato la cookies cache di Crome e poi ho lanciato la app e premuto il bottone di ritorno.
La prima volta che ritorna funziona come dovrebbe senza dare errore.
Se ripeto la seconda volta mi salta fuori l'errore .... ;-((
Per me è un mistero. Avrò decine e decine di query con un where inserito come ad esempio tutte quelle delle master/details
Cosa potrebbe essere ?
Ho fatto una prova e cioè ho cancellato la cookies cache di Crome e poi ho lanciato la app e premuto il bottone di ritorno.
La prima volta che ritorna funziona come dovrebbe senza dare errore.
Se ripeto la seconda volta mi salta fuori l'errore .... ;-((
Per me è un mistero. Avrò decine e decine di query con un where inserito come ad esempio tutte quelle delle master/details
Cosa potrebbe essere ?
-
- Messaggi: 116
- Iscritto il: 06 ott 2014, 08:56
Re: WHERE clause raddoppiata con sc_redir ???
Forse ho trovato l'inghippo...
Dopo 4 anni mi ero perso la logica....
Il grid permette di inserire in una casella una quantità di ordine (input) e per questo era stato fatto del codice custom abbastanza incasinato.
Le grid standard non permettono input .
Il problema era che se si facevano dei filtri (refined search) poi quando tornato dalle altre app linkate li perdeva e l'utente voleva mantenere la selezione eseguita. Senza custom SC lo fa di suo.
Allora avevo fatto in modo che SC si mantenesse i filtri ovvero i WHERE in una variabile globale e quando tornavo la applicavo nello OnScriptInit.
Avendo inserito in aggiunto un WHERE nello SQL ora lui ha praticamente il suo dello SQL e in più quello della variabile globale .
Quindi me lo raddoppia.
Ora il bello è come fare ? Se faccio una vista come dici tu e poi modifico la SQL .. SC mi sfascia tutto il grid e non ci penso neanche a metterlo a posto dato che è super incasinato.
Boh...
Nel bottone di link del grid principale ho questo codice
$save_current_where = {sc_where_current};
[glo_save_current_where_temp]= $save_current_where;
[glo_flag_search]=0;
sc_redir(form_products_selected_rfqs,parm1='[glo_CustomerID]');
e OnScripInit (quando torno dal bottone della app linkata forzo [glo_flag_search] a 1 e poi qui applico la select con WHERE aggiunto
if([glo_flag_search]==1)
{
sc_select_where(add) = [glo_save_current_where_temp];
[glo_flag_search]=0;
}
Mi vien male....
Dopo 4 anni mi ero perso la logica....
Il grid permette di inserire in una casella una quantità di ordine (input) e per questo era stato fatto del codice custom abbastanza incasinato.
Le grid standard non permettono input .
Il problema era che se si facevano dei filtri (refined search) poi quando tornato dalle altre app linkate li perdeva e l'utente voleva mantenere la selezione eseguita. Senza custom SC lo fa di suo.
Allora avevo fatto in modo che SC si mantenesse i filtri ovvero i WHERE in una variabile globale e quando tornavo la applicavo nello OnScriptInit.
Avendo inserito in aggiunto un WHERE nello SQL ora lui ha praticamente il suo dello SQL e in più quello della variabile globale .
Quindi me lo raddoppia.
Ora il bello è come fare ? Se faccio una vista come dici tu e poi modifico la SQL .. SC mi sfascia tutto il grid e non ci penso neanche a metterlo a posto dato che è super incasinato.
Boh...
Nel bottone di link del grid principale ho questo codice
$save_current_where = {sc_where_current};
[glo_save_current_where_temp]= $save_current_where;
[glo_flag_search]=0;
sc_redir(form_products_selected_rfqs,parm1='[glo_CustomerID]');
e OnScripInit (quando torno dal bottone della app linkata forzo [glo_flag_search] a 1 e poi qui applico la select con WHERE aggiunto
if([glo_flag_search]==1)
{
sc_select_where(add) = [glo_save_current_where_temp];
[glo_flag_search]=0;
}
Mi vien male....
Chi c’è in linea
Visitano il forum: Nessuno e 1 ospite