<div dir="ltr">Quindi se io metto dei vincoli sulle  foreign keys nel mio DB perché funzionino devo attivarle ad ogni singola connessione ? Mi sembra un comportamento un po' strano ? <div><br></div><div>>L<</div>
</div><div class="gmail_extra"><br><br><div class="gmail_quote">Il giorno 21 febbraio 2014 10:16, G. Allegri <span dir="ltr"><<a href="mailto:giohappy@gmail.com" target="_blank">giohappy@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 dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">Il giorno 21 febbraio 2014 10:08, Luca Lanteri <span dir="ltr"><<a href="mailto:mescal72@gmail.com" target="_blank">mescal72@gmail.com</a>></span> ha scritto:<div class="">
<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr">Mi inserisco nella discussione per chiedere una cosa veramente banale.<div>

Una volta attivati i recursive trigger e le <span style="font-family:arial,sans-serif;font-size:12.800000190734863px">foreign_keys su un database, questi rimangono attivi per quel determinato DB e solo per quello, o devo riattivarli ad ogni nuova connessione, o ancora peggio rimangono attivati su tutti i DB ?</span></div>

</div></blockquote><div><br></div></div><div>Le PRAGMA sono attive per singola connessione (ed eventualmente con effetti retroattivi secondo le regole più specifiche della singola PRAGMA).</div><div><a href="http://www.sqlite.org/pragma.html" target="_blank">http://www.sqlite.org/pragma.html</a><br>

</div><div><br></div><div>giovanni</div><div><div class="h5"><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div dir="ltr">

<div class="gmail_extra"><br></div><div class="gmail_extra">Immagino che il comportamento corretto sia il primo, ma giusto per sicurezza....</div><div class="gmail_extra">grazie</div><div class="gmail_extra"><br><br><div class="gmail_quote">


Il giorno 21 febbraio 2014 09:54,  <span dir="ltr"><<a href="mailto:a.furieri@lqt.it" target="_blank">a.furieri@lqt.it</a>></span> ha scritto:<div><div><br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">


<div>On Fri, 21 Feb 2014 09:23:49 +0100, Andrea Peri wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
Ho dato una lettura al documento che indicavi.<br>
<br>
Riassumendo:<br>
prima della sqlite 3.6.18 i trigger ricorsivi non erano supporti e<br>
quindi vanno eviate versioni di sqlite cosi' vecchie.<br>
<br>
Nelle versioni successive, pero' i trigger ricorsivi erano<br>
disabilitati by-default, ppunto come dicevi te.<br>
Quindi occorre sempre inserire una clausola<br>
<br>
PRAGMA recurvive_triggers=1<br>
<br>
Usando gli applicativi di spatialite:<br>
 CLI e Spatialite-GUI.<br>
Questa clausola<br>
recursive_triggers va settata comunque o è implicita ?<br>
<br>
</blockquote>
<br></div>
con tutte le versioni attuali (CLI/GUI) e' sempre disabilitata<br>
by default; ma per analogia con quanto gia' implementato per<br>
l'analoga "PRAGMA foreign_keys" presumo invece che sarebbe piu'<br>
opportuno abilitarla implicitamente.<div><br>
<br>
<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
Detto questo.<br>
<br>
se un disgraziato lavora su QGIS, editando un dataset tramite la<br>
finestra degli attributi, oppure trmaite le form customized che ora<br>
qgis consente, tale clausola "recursive_triggers=1" probabilmente è a<br>
0 , ma come puo' fare per garantirsi di settarla a 1 ?<br>
<br>
</blockquote>
<br></div>
vista l'architettura SQLite, gestire questo tipo di PRAGMA ricade<br>
sotto la piena responsabilita' del sw che attiva la connessione:<br>
non c'e' nessun modo per renderele permanenti.<br>
<br>
il problema e' abbastanza facile da affrontare per tutti i tools che<br>
gestiscono le connessioni in modo centralizzato (<a href="http://p.es" target="_blank">p.es</a>. il data-provider<br>
di QGIS, oppure i tool spatialite); ma nel caso <a href="http://p.es" target="_blank">p.es</a>. dei plug-in Python<br>
ciascun singolo plug-in e' ovviamente libero di comportarsi come meglio<br>
crede, e non c'e' nessuna possibilita' di imporre dall'esterno un<br>
set di comportamenti predefiniti.<div><br>
<br>
<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
Qui mi sorge un dubbio serio...<br>
<br>
E forse comincio a capire perche' a suo tempo ebbi dei problemi...<br>
<br>
</blockquote>
<br></div>
N.B.: ed a questo proposito a me inizia a sorgere anche un ulteriore<br>
dubbio; con tutta la proliferazione di tools e di interfacce che<br>
iniziano a circolare, siamo sempre sicuri che il supporto per i vincoli<br>
relazionali venga attivato in tutti i casi ?<br>
<br>
perche' se da qualche parte c'e' un tool che apre una connessione per<br>
conto proprio al di fuori del data-provider (<a href="http://p.es" target="_blank">p.es</a>. in Python) che non<br>
cura di impostare correttamente questo parametro di connessione:<br>
<br>
PRAGMA foreign_keys=1<br>
<br>
allora potrebbe addirittura accadere che tutti i vincoli Primary/Foreign<br>
Key possano venire allegramente violati senza nessuna conseguenza.<br>
e naturalmente, in caso di mancata attivazione, non funzionano neppure<br>
le sequenze di eventi ON CASCADE ... insomma, le conseguenze potrebbero<br>
anche avere un impatto fortemente negativo, anche peggiore di quello<br>
dovuto a mancata attivazione del supporto ricursivo per i triggers.<div><div><br>
<br>
ciao Sandro<br>
______________________________<u></u>_________________<br>
<a href="mailto:Gfoss@lists.gfoss.it" target="_blank">Gfoss@lists.gfoss.it</a><br>
<a href="http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss" target="_blank">http://lists.gfoss.it/cgi-bin/<u></u>mailman/listinfo/gfoss</a><br>
Questa e' una lista di discussione pubblica aperta a tutti.<br>
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.<br>
666 iscritti al 22.7.2013</div></div></blockquote></div></div></div><br></div></div>
<br>_______________________________________________<br>
<a href="mailto:Gfoss@lists.gfoss.it" target="_blank">Gfoss@lists.gfoss.it</a><br>
<a href="http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss" target="_blank">http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss</a><br>
Questa e' una lista di discussione pubblica aperta a tutti.<br>
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.<br>
666 iscritti al 22.7.2013<br></blockquote></div></div></div><span class="HOEnZb"><font color="#888888"><br><br clear="all"><div><br></div>-- <br><div dir="ltr">Giovanni Allegri<br><a href="http://about.me/giovanniallegri" target="_blank">http://about.me/giovanniallegri</a><div>

Twitter: <a href="https://twitter.com/_giohappy_" target="_blank">https://twitter.com/_giohappy_</a></div><div>blog: <a href="http://blog.spaziogis.it" target="_blank">http://blog.spaziogis.it</a><br>GEO+ geomatica in Italia <a href="http://bit.ly/GEOplus" target="_blank">http://bit.ly/GEOplus</a></div>

</div>
</font></span></div></div>
</blockquote></div><br></div>