<div dir="ltr">Ho delle semplici interfacce grafiche in QT che visualizzano i dati, permettono di navigare e fare delle ricerche. Quindi quando voglio fare una ricerca, non faccio altro che svuotare le caselle di testo presenti nella gui, uno scrive dentro il volore e lo script li associa al campo della tabella.<div>Non uso il metodo interno delle QT ma passo per SQLalchemy che mi permette di dialogare con postgres e sqlite senza cambiare nulla. Unica problema è proprio lato SQlite che mi pone un limite di 999 parametri ricercabili contemporaneamente.</div></div><div class="gmail_extra"><br><div class="gmail_quote">Il giorno 13 settembre 2014 20:25, aperi2007 <span dir="ltr"><<a href="mailto:aperi2007@gmail.com" target="_blank">aperi2007@gmail.com</a>></span> ha scritto:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div text="#000000" bgcolor="#FFFFFF"><span class="">
<br>
<div>>Aggirerò il problema così:</div>
<div>>memorizzo in un dizionario le coppie campi/valori che
creano l'istanza di database in un dato momento. Così non dovrò
cercare gli ID tramite un IN.</div>
<div><br>
</div></span>
Non ho chiaro quello che devi fare, ma indubbiamente vi e' un limite
nella lunghezza della espressione.<br>
<br>
Pero' se cosi' e' , e se come ho capito te memorizzi gli ID in una
tabella (il tuo dizionario),<br>
li puoi invocare cosi':<br>
<br>
where<br>
campo1 IN (select valore from dizionario)<br>
;<br>
<br>
Se il problema e' la lunghezza della stringa SQL che non puo
superare una certa lunghezza,<br>
questa ultima sintassi dovrebbe funzionare.<br>
<br>
E forse potresti anche usare<br>
<br>
where<br>
campo1 EXISTS (select valore from dizionario)<br>
<br>
A.<br>
<br>
<div>Il 13/09/2014 19:26, Luca Mandolesi ha
scritto:<br>
</div><div><div class="h5">
<blockquote type="cite">
<div dir="ltr">
<div>
<div><br>
</div>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">Il giorno 13 settembre 2014 13:45,
Andrea Peri <span dir="ltr"><<a href="mailto:aperi2007@gmail.com" target="_blank">aperi2007@gmail.com</a>></span>
ha scritto:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Io non
userei una serie smisurata di AND,<br>
anche perche' metti a dura prova l'ottimizzatore della
query.<br>
<br>
Proverei a usare invece il costrutto IN<br>
<br>
where<br>
campo1 IN ('valore1','valore2','valore3',.....)<br>
</blockquote>
<div><br>
</div>
<div>No, non funzia, lo vede sempre come un eccesso di
patametri</div>
<div> </div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Anche su postgres.<br>
</blockquote>
<div><br>
</div>
<div>Postgres digerisce anche i sassi. Non ha problemi</div>
<div> </div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
prova e facci sapere se questo ammette piu valori di 999<br>
</blockquote>
<div><br>
</div>
<div><br>
</div>
<div>Aggirerò il problema così:</div>
<div>memorizzo in un dizionario le coppie campi/valori che
creano l'istanza di database in un dato momento. Così non
dovrò cercare gli ID tramite un IN.</div>
<div><br>
</div>
<div>Nel caso avessi un'istanza di database che corrisponde
a tutti i record faro solo una query id > 0.</div>
<div><br>
</div>
<div>Per eliminare per esempio più di 1000 record non farò
altri che segmentare i delete in pacchetti da 500.</div>
<div><br>
</div>
<div><br>
</div>
<div><br>
</div>
<div> </div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<span><font color="#888888"><br>
<br>
--<br>
-----------------<br>
Andrea Peri<br>
. . . . . . . . .<br>
qwerty àèìòù<br>
-----------------<br>
</font></span></blockquote>
</div>
<br>
</div>
</div>
</blockquote>
<br>
</div></div></div>
</blockquote></div><br></div>