 
 
 <?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>upCreative &#187; sql</title>
	<atom:link href="https://www.upcreative.net/tag/sql/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.upcreative.net</link>
	<description>Web Design, grafica,  web application e content web marketing</description>
	<lastBuildDate>Wed, 10 Apr 2019 12:53:28 +0000</lastBuildDate>
	<language>it-IT</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.41</generator>
	<item>
		<title>Come creare un app in HTML: salvataggio dati con database SQL lato-client &#8211; parte 2</title>
		<link>https://www.upcreative.net/come-creare-un-app-html-salvataggio-dati-database-sql-lato-client-parte-2/</link>
		<comments>https://www.upcreative.net/come-creare-un-app-html-salvataggio-dati-database-sql-lato-client-parte-2/#comments</comments>
		<pubDate>Fri, 16 May 2014 08:11:57 +0000</pubDate>
		<dc:creator><![CDATA[upcreative]]></dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Creare applicazioni javascript]]></category>
		<category><![CDATA[Risorse]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Web Apps]]></category>
		<category><![CDATA[come creare app]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[HTML Mobile App]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[mobile app]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[Web SQL]]></category>

		<guid isPermaLink="false">http://www.upcreative.net/?p=3957</guid>
		<description><![CDATA[<p>Come creare un app: ecco la seconda parte della mini-guida sul salvataggio dei dati in un'applicazione mobile sviluppata con HTML5, CSS3 e Javascript, utilizzando un database lato-client. In questo articolo analizzerò i metodi essenziali per poter sfruttare al meglio le funzionalità del Web SQL. </p>
<p>The post <a rel="nofollow" href="https://www.upcreative.net/come-creare-un-app-html-salvataggio-dati-database-sql-lato-client-parte-2/">Come creare un app in HTML: salvataggio dati con database SQL lato-client &#8211; parte 2</a> appeared first on <a rel="nofollow" href="https://www.upcreative.net">upCreative</a>.</p>
]]></description>
				<content:encoded><![CDATA[<div class="l-submain"><div class="l-submain-h g-html i-cf"><div class="g-cols"><div class="full-width">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			Nella  <a title="Come creare un app in HTML: salvataggio dati con database SQL lato-client – parte 1" href="http://www.upcreative.net/come-creare-un-app-in-html-salvataggio-dati-con-database-sql-lato-client-parte-1/">prima parte di questa mini-guida</a> ho introdotto i <strong>database <em>lato-client</em></strong> come soluzione per il salvataggio di quel tipo di dati che non necessitano di essere salvati su qualche sistema di <em>storage </em>remoto, utile sia per tipi di progetto come normali siti web, ma soprattutto per lo <strong>sviluppo di mobile app in HTML5, CSS3 e Javascript</strong>.</p>
<p>Molti sviluppatori (troppi) non sono a conoscenza del fatto che è possibile <strong>salvare dei dati in maniera relazionale sul browser</strong> dell&#8217;utente (o del visitatore), utilizzando uno dei linguaggi maggiormente conosciuti nel mondo del web design: l&#8217;<strong><em>SQL</em></strong>.</p>
<p>Da qui nasce l&#8217;idea di questa mini-guida.</p>
<p><img class="aligncenter wp-image-3976 size-full" src="http://www.upcreative.net/wp-content/uploads/2014/05/come-creare-un-app-i-database-parte-2.jpg" alt="come-creare-un-app-i-database-parte-2" width="690" height="430" /></p>
<p>Nello scorso articolo ti ho mostrato quali sono i database <em>lato-client</em> disponibili, ed in particolare ho anticipato <strong>i tre metodi fondamentali</strong> per poter <strong>sfruttare tutte le potenzialità del database Web SQL:</strong></p>
<ul>
<li><i>openDatabase</i></li>
<li><i>transaction</i></li>
<li><i>executeSql</i></li>
</ul>
<p>Vediamo come utilizzarli più nel dettaglio.</p>
<hr />
<p><em>Come creare una #mobileapp: i metodi del #database #SQL lato-client</em><br /><a href='https://twitter.com/share?text=Come+creare+una+%23mobileapp%3A+i+metodi+del%C2%A0%23database+%23SQL+lato-client&#038;via=upCreativeIta&#038;related=upCreativeIta&#038;url=https://www.upcreative.net/come-creare-un-app-html-salvataggio-dati-database-sql-lato-client-parte-2/' target='_blank'>Click To Tweet</a></p>
<hr />
<h2>Come creare un app: Creare ed aprire un database</h2>
<p><img class="aligncenter wp-image-3977 size-full" src="http://www.upcreative.net/wp-content/uploads/2014/05/Come-creare-un-app-nuovo-database.jpg" alt="Come-creare-un-app-nuovo-database" width="690" height="272" /></p>
<p>Per salvare i nostri dati abbiamo bisogno come prima cosa di <b>cerare un database</b>. Se si tenta di aprire un Database che non esiste l’API del <em>Web SQL</em> lo creerà automaticamente per noi.</p>
<p>Per creare ed aprire un database, proseguiamo come segue:</p><pre class="crayon-plain-tag">var db = openDatabase(“nomeDatabase”, “1.0”, “IL mio primo database!”, 3 * 1024 * 1024 , function(database){
      alert(“Database creato e aperto correttamente”);
});</pre><p>
Nell’esempio abbiamo creato e aperto un nuovo Database associando la sua istanza ad una variabile “<i>db</i>”, il tutto passando <strong>5 parametri</strong> al metodo <i>openDatabase:</i></p>
<ol>
<li>Il nome del Database</li>
<li>Il numero della versione da utilizzare</li>
<li>Una descrizione di testo</li>
<li>Dimensioni stimate del Database</li>
<li>Callback di creazione</li>
</ol>
<p>Se usiamo come primo parametro il nome di un database che è già stato creato in precedenza, non viene creato un nuovo database, ma viene aperto quello già presente.</p>
<hr />
<p><em>Come creare una #mobileapp: creare e aprire un #database #SQL lato-client</em><br /><a href='https://twitter.com/share?text=Come+creare+una+%23mobileapp%3A%C2%A0creare+e+aprire+un%C2%A0%23database+%23SQL+lato-client&#038;via=upCreativeIta&#038;related=upCreativeIta&#038;url=https://www.upcreative.net/come-creare-un-app-html-salvataggio-dati-database-sql-lato-client-parte-2/' target='_blank'>Click To Tweet</a></p>
<hr />
<h2>Come creare un app: le transaction di Web SQL</h2>
<p><img class="aligncenter wp-image-3978 size-full" src="http://www.upcreative.net/wp-content/uploads/2014/05/Come-creare-un-app-Web-SQL-transaction.jpg" alt="Come-creare-un-app-Web-SQL-transaction" width="690" height="272" /></p>
<p>Una volta aperto il Database, possiamo istanziare <strong>l&#8217;oggetto <i>transaction</i></strong>, che ci servirà per eseguire le query di cui abbiamo bisogno.</p>
<p>Ma perché servirsi di un oggetto aggiuntivo come la <i>transaction </i>invece di scrivere semplicemente le nostre righe di SQL?</p>
<p>Le <i>transaction </i>ci permettono di usufruire di una funzionalità di <b><i>rollback:</i></b> ciò significa che, se una <i>transaction</i> contenente una o più query SQL per qualche ragione fallisce, gli aggiornamenti al database non vengono effettuati, come se la transazione non fosse mai avvenuta.</p>
<p>E’ una logica di funzionamento molto simile a quella delle transazioni dei database MSSql, e rappresenta un grande vantaggio, soprattutto quando abbiamo la necessità di eseguire <b>più operazioni di modifica in</b> coda.</p>
<p>Il metodo <i>transaction </i>dà  allo sviluppatore anche la possibilità di <strong>gestire eventuali errori</strong> nella transazione con delle apposite <strong><i>callback di errore e di successo</i>.</strong></p>
<p>Ma vediamo più nel dettaglio come si utilizza.</p>
<p>La <i>transaction</i> non è altro che una semplice funzione con una <i>callback </i>di ritorno:</p><pre class="crayon-plain-tag">var db = openDatabase(“nomeDatabase”, “1.0”, “IL mio primo database!”, 3 * 1024 * 1024);
db.transaction(function(tx){
     /* Effettuare le proprie query qui */
}, function(){
     //callback di successo
     alert(“Istruzioni SQL eseguite correttamente”);
});</pre><p>
L’oggetto &#8220;<i>tx&#8221;</i> restituito nella prima funzione di callback, rappresenta l’oggetto della <i>transaction</i>, che useremo per eseguire le query di cui abbiamo bisogno.</p>
<p>Oltre al metodo <i>transaction, </i>è possibile usare anche il metodo <i><strong>readTransaction</strong>, </i>che funziona in modo del tutto analogo al primo<i>, </i>ma che non può essere impiegato per eseguire delle istruzioni SQL di modifica del database (come per es. la <i>creazione o l&#8217;eliminazione di tabelle</i>, oppure istruzioni come <i>INSERT </i>ed <i>EDIT</i>), in quanto è stato creato appositamente per <i>velocizzare le query di lettura.</i></p>
<p>Tuttavia con i metodo <i>transaction</i> possiamo effettuare sia query di lettura che di modifica.</p>
<p>Una volta ottenuto il nostro oggetto <i>transaction, </i>procediamo con <strong>l’esecuzione delle query</strong>.</p>
<h2>Come creare un app in HTML: il metodo executeSQL</h2>
<p><img class="aligncenter wp-image-3979 size-full" src="http://www.upcreative.net/wp-content/uploads/2014/05/Come-creare-un-app-Web-SQL-executeSQL.jpg" alt="Come-creare-un-app-Web-SQL-executeSQL" width="690" height="272" /></p>
<p>Eccoci finalmente al punto in cui possiamo divertirci con le istruzioni SQL.</p>
<p><em>executeSQL</em> può essere utilizzato <strong>sia per query di lettura che per query di modifica del database</strong>, include un <strong>controllo implicito per l&#8217;<i>SQL Injection</i></strong>, e fornisce una callback di ritorno per poter processare i risultati delle query effettuate.</p>
<h3>Come creare una tabella</h3>
<p>Il metodo <i>executeSql</i> è un metodo dell’oggetto <i>transaction </i>(ovvero dell&#8217;oggetto fornito con il parametro di ritorno “<em>tx</em>”) e viene utilizzato in questa maniera:</p><pre class="crayon-plain-tag">var db = openDatabase(“nomeDatabase”, “1.0”, “IL mio primo database!”, 3 * 1024 * 1024);

db.transaction(function(tx){
	/* Effettuare le proprie query qui */
}, function(){
	//callback di successo
	tx.executeSql("CREATE TABLE Employees (id unique, name)", [] , 			
		function(sqlTransaction, sqlResultSet){
				alert("La tabella è stata creata.");
		}, 
		function(sqlTransaction, sqlError){			
			/* Gestione degli errori */
		}
	);
});</pre><p>
L’esempio che ti ho appena mostrato <strong>crea una tabella</strong> dal nome “<i>Employees</i>” all’interno del nostro Database “<i>nomeDatabase</i>”.</p>
<p>Ovviamente, se la tabella già esiste sarà restituito un errore, che possiamo gestire all’interno della funzione passata come terzo parametro, oppure possiamo evitare l’errore a priori con una query del tipo:</p><pre class="crayon-plain-tag">var db = openDatabase(“nomeDatabase”, “1.0”, “IL mio primo database!”, 3 * 1024 * 1024);
db.transaction(function(tx){
	/* Effettuare le proprie query qui */
}, function(){
	//callback di successo
	tx.executeSql("CREATE TABLE IF NOT EXISTS Employees (id unique, name)");
	tx.executeSql("INSERT INTO Employees (id, name) VALUES (1, ‘Giacomo')");
});</pre><p>
Ora la tabella “<i>Employees” </i>ha un record al suo interno.</p>
<hr />
<p><em>Come creare una #mobileapp: effettuare query in un #database #SQL lato-client</em><br /><a href='https://twitter.com/share?text=Come+creare+una+%23mobileapp%3A+effettuare+query%C2%A0in+un%C2%A0%23database+%23SQL+lato-client&#038;via=upCreativeIta&#038;related=upCreativeIta&#038;url=https://www.upcreative.net/come-creare-un-app-html-salvataggio-dati-database-sql-lato-client-parte-2/' target='_blank'>Click To Tweet</a></p>
<hr />
<h3>Come inserire un nuovo record in una tabella</h3>
<p>Ma se volessimo inserire una riga mediante dei valori dinamici?</p>
<p>Ciò è possibile utilizzando il secondo argomento da passare al metodo <i>executeSQL:</i></p><pre class="crayon-plain-tag">tx.executeSql(“INSERT INTO Employees (id, name) VALUES (?, ?) ”, [variabile_id, variabile_name] );</pre><p>
In questo modo le variabili “<i>variabile_id</i>” e “<em>variabile_name</em>” saranno sostituite ai caratteri “<i>?</i>” all’interno della query <strong>in modo sequenziale</strong>.</p>
<h3>Come leggere i record di una tabella e processarli con il javascript</h3>
<p>Infine, per eseguire <strong>query di lettura</strong> nella nostra tabella, basterà utilizzare la <i>callback </i>di ritorno processando i risultati ottenuti:</p><pre class="crayon-plain-tag">tx.executeSql('SELECT id, name FROM Employees', [  ], function (tx, resultsData) {
	//i record restituiti sono all’interno della proprietà “rows” dell’oggetto resultsData
	//loop per scorrere tutti i risultati ottenuti
	for (var i = 0; resultsData.rows.length &lt; len; i++) {
		var employee = resultsData.rows.item(i);
		console.log(employee .name);
	}
});</pre><p>
La <em>callback</em> riceve <strong>due parametri di ritorno</strong>:</p>
<ul>
<li><strong>l’oggetto della transazione</strong> (lo stesso che abbiamo usato per effettuare la query)</li>
<li><strong>l’oggetto <em>javascript</em> dei risultati</strong> contenente un attributo “<i>rows</i>” strutturato come un array, anche se non lo si può definire un’array a tutti gli effetti: per accedere ai dati di un singolo <em>record</em> dobbiamo utilizzare la sintassi &#8220;<i>rows.item(i)</i>&#8220;, dove “<i>i</i>” rappresenta l’indice del <em>record</em>  all&#8217;interno della lista dei risultati, mentre in un normale <i>array </i>sarebbe bastato scrivere “<i>rows[i]</i>”).</li>
</ul>
<p>Dall’istruzione “<i>var employee = resultsData.rows.item(i);</i>” otteniamo quindi l’oggetto di un singolo <em>record</em>, che avrà le stesse proprietà dei campi richiesti nella <em>query</em> (nel nostro caso avrà quindi due proprietà: “<i>id</i>” e “<i>name</i>” );</p>
<h2>Come creare un app: conclusioni sui metodi del Web SQL</h2>
<p>Queste sono a grandi linee tutte le nozioni di cui abbiamo bisogno per sfruttare la maggior parte delle funzionalità del <em>Web SQL</em>.</p>
<p>Come ho spiegato nella <a title="Come creare un app in HTML: salvataggio dati con database SQL lato-client – parte 1" href="http://www.upcreative.net/come-creare-un-app-in-html-salvataggio-dati-con-database-sql-lato-client-parte-1/">prima parte di questa mini-guida</a>, il <em><strong>Web SQL</strong></em> è un metodo molto utile per salvare dati in <strong>forma relazionale</strong> all&#8217;interno di qualsiasi<em> single page application, </em>sia quelle destinate ad essere compilate con strumenti come <a title="Phonegap - Sviluppo come creare un app in HTML5, CSS3 e Javascript" href="http://phonegap.com/"><strong><em>Phonegap</em></strong></a> e distribuite su dispositivi mobile, sia quelle che saranno disponibili come <em>web app</em> ed accessibili direttamente da un indirizzo remoto.</p>
<p>Personalmente trovo questo metodo di salvataggio molto utile per salvare le impostazioni personali dell&#8217;utente, come nel caso di <a title="Tint - HTML5 Mobile App su App Store" href="http://www.upcreative.net/tint-weather-app/">Tint</a> (la mia app per il meteo), o per salvare i dati sul dispositivo per quelle applicazioni che non devono essere sincronizzate in cloud, come ho fatto per <a title="Dieta SI o NO? - HTML5 Mobile App distribuita su App Store" href="http://www.upcreative.net/app-dieta-si-o-no/">Dieta SI o NO?</a>.</p>
<p>Tuttavia va ricordato il fatto che le <strong><em>specifications del W3C</em> hanno abbandonato il supporto al Web SQL</strong> a favore del database non-relazionale <strong>IndexedDB</strong> e,<strong> </strong>in un futuro molto prossimo, il Web SQL non sarà più supportato dai browser, inclusi quelli mobile.</p>
<hr />
<p><em>Come creare una #mobileapp: i metodi del #database #SQL lato-client</em><br /><a href='https://twitter.com/share?text=Come+creare+una+%23mobileapp%3A+i+metodi+del%C2%A0%23database+%23SQL+lato-client&#038;via=upCreativeIta&#038;related=upCreativeIta&#038;url=https://www.upcreative.net/come-creare-un-app-html-salvataggio-dati-database-sql-lato-client-parte-2/' target='_blank'>Click To Tweet</a></p>
<hr />
<h2>Ed Ora?</h2>
<p>Se hai mai utilizzato sistemi di memorizzazione come i database <em>lato-client</em> mi piacerebbe avere un tuo riscontro per quanto riguarda le tue reali esperienze, i tuoi progetti e/o reali <em>case-study</em>.</p>
<p>Sentiti libero/a inoltre di esporre tutti i tuoi dubbi o perplessità al riguardo, sia inviandomi una mail all&#8217;indirizzo <a href="mailto:info@upcreative.net">info@upcreative.net</a>, o meglio ancora, commentando questo articolo.
		</div> 
	</div> <div class="g-cols color_alternate w-actionbox"><div class="one-half">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h3>Crea la tua mobile app in HTML, CSS3 e Javascript</h3>
<p>Utilizzando il sistema di salvataggio Web SQL insieme a molte altre tecniche, ho realizzato più di 10 mobile app in HTML, CSS3 e Javascript (tra cui <a title="Tint HTML mobile app" href="http://www.upcreative.net/tint-weather-app/">Tint</a> e <a title="Dieta SI o NO? HTML Mobile app" href="http://www.upcreative.net/app-dieta-si-o-no/">Dieta SI o NO?</a>).</p>
<p>Se anche tu vuoi realizzare la tua applicazione in HTML, CSS e javascript da distribuire nei vari store, forse potrebbe interessarti il mio e-book <strong><a title="HTML Mobile Accelerato - Come creare una mobile app in HTML, CSS e Javacript" href="http://www.upcreative.net/html-mobile-accelerato/">HTML Mobile Accelerato</a>.</strong>
		</div> 
	</div> </div><div class="one-half">
	<div class="wpb_single_image wpb_content_element align_center">
		<div class="wpb_wrapper">
			
			<a href="http://www.upcreative.net/html-mobile-accelerato/"><img width="563" height="418" src="http://www.upcreative.net/wp-content/uploads/2013/11/HTML-mobile-accelerato-ebook-cover1.png" class="attachment-full" alt="HTML-mobile-accelerato-ebook-cover" /></a>
		</div> 
	</div> 
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			<div class="widget_wysija_cont shortcode_wysija"><div id="msg-form-wysija-shortcode6ab2515b1d784-4" class="wysija-msg ajax"></div><form id="form-wysija-shortcode6ab2515b1d784-4" method="post" action="#wysija" class="widget_wysija shortcode_wysija">
<p class="wysija-paragraph">
    
    
    	<input type="text" name="wysija[user][email]" class="wysija-input validate[required,custom[email]]" title="Inserisci la tua mail" placeholder="Inserisci la tua mail" value="" />
    
    
    
    <span class="abs-req">
        <input type="text" name="wysija[user][abs][email]" class="wysija-input validated[abs][email]" value="" />
    </span>
    
</p>
<input class="wysija-submit wysija-submit-field" type="submit" value="Tienimi aggiornato/a" />

    <input type="hidden" name="form_id" value="4" />
    <input type="hidden" name="action" value="save" />
    <input type="hidden" name="controller" value="subscribers" />
    <input type="hidden" value="1" name="wysija-page" />

    
        <input type="hidden" name="wysija[user_list][list_ids]" value="4,1" />
    
 </form></div>
		</div> 
	</div> </div></div></div></div>
</div></div><p>The post <a rel="nofollow" href="https://www.upcreative.net/come-creare-un-app-html-salvataggio-dati-database-sql-lato-client-parte-2/">Come creare un app in HTML: salvataggio dati con database SQL lato-client &#8211; parte 2</a> appeared first on <a rel="nofollow" href="https://www.upcreative.net">upCreative</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.upcreative.net/come-creare-un-app-html-salvataggio-dati-database-sql-lato-client-parte-2/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Come creare un app in HTML: salvataggio dati con database SQL lato-client &#8211; parte 1</title>
		<link>https://www.upcreative.net/come-creare-un-app-in-html-salvataggio-dati-con-database-sql-lato-client-parte-1/</link>
		<comments>https://www.upcreative.net/come-creare-un-app-in-html-salvataggio-dati-con-database-sql-lato-client-parte-1/#comments</comments>
		<pubDate>Sat, 10 May 2014 11:53:05 +0000</pubDate>
		<dc:creator><![CDATA[upcreative]]></dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Creare applicazioni javascript]]></category>
		<category><![CDATA[Web Apps]]></category>
		<category><![CDATA[come creare app]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[HTML Mobile App]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[mobile app]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[Web SQL]]></category>

		<guid isPermaLink="false">http://www.upcreative.net/?p=3953</guid>
		<description><![CDATA[<p>Per qualsiasi Applicazione Mobile si ha il bisogno di salvare dati, e la maggior parte delle volte tali dati necessitano di essere memorizzati nel dispositivo dell'utente. Tutti i web designers hanno, per forza di cose, molta familiarità con l'SQL: in questo articolo vedremo come creare un app in HTML utilizzando come metodo di salvataggio un database relazionale lato-client: il Web SQL.</p>
<p>The post <a rel="nofollow" href="https://www.upcreative.net/come-creare-un-app-in-html-salvataggio-dati-con-database-sql-lato-client-parte-1/">Come creare un app in HTML: salvataggio dati con database SQL lato-client &#8211; parte 1</a> appeared first on <a rel="nofollow" href="https://www.upcreative.net">upCreative</a>.</p>
]]></description>
				<content:encoded><![CDATA[<div class="l-submain"><div class="l-submain-h g-html i-cf"><div class="g-cols"><div class="full-width">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			Molti sviluppatori <em>javascript</em> forse non ne sono a conoscenza, ma <strong>esiste un metodo per poter salvare i dati in un Database lato-client</strong>. Ciò significa che è possibile utilizzare database <strong>situati nel dispositivo dell&#8217;utente</strong>.</p>
<p>Esso costituisce un grande vantaggio nella realizzazione di <em>HTML Mobile App</em> e <em>single page application</em> in generale, anche se i database SQL <em>lato-client</em> possono essere utilizzati per qualunque sito web, in quanto si tratta di una <strong>funzionalità HTML5</strong>.</p>
<p>In un articolo che ho scritto per <a href="http://www.yourinspirationweb.com/">YourInspirationWeb.com</a>, avevo riportato le varie modalità con cui è possibile salvare i dati per una HTML Mobile App sviluppata in CSS3 e Javascript: <strong><a title="HTML Mobile App: Tecniche per il salvataggio dei dati" href="http://www.yourinspirationweb.com/2014/04/02/html5-mobile-app-tecniche-per-il-salvataggio-dei-dati/">HTML Mobile App: Tecniche per il salvataggio dei dati</a>.</strong></p>
<p>In questo post prenderemo in considerazione il terzo metodo per il salvataggio dati esposto nell&#8217;articolo di YourInspirationWeb.com: il <strong>Database HTML5</strong>.</p>
<p><img class="aligncenter wp-image-3964 size-full" src="http://www.upcreative.net/wp-content/uploads/2014/05/come-creare-un-app-i-database.jpg" alt="come-creare-un-app-i-database" width="690" height="430" /></p>
<p>La maggior parte degli sviluppatori web è abituata a salvare i propri dati tramite <strong>metodi relazionali</strong>, utilizzando perlopiù database come <em>mySql </em>o <em>MsSql, </em>e chi si occupa dello sviluppo di Mobile App in HTML5, CSS3 e Javascript solitamente è prima di tutto un web designer impegnato nella realizzazione di siti web (tramite appunto questo tipo di database, come nel caso di sviluppatori WordPress).</p>
<p>Pertanto molti saranno contenti del fatto che <strong>per la creare mobile app è disponibile un metodo di salvataggio che sfrutta database <em>lato-client</em></strong>.</p>
<p>Se infatti <i>lato-server</i> è possibile usare qualsiasi sorta di database, anche l’HTML mette a disposizione un tipo di <b>database <i>lato-client</i></b>, che lo sviluppatore può sfruttare per poter inserire, modificare, cancellare e leggere i dati del proprio progetto sul dispositivo, secondo una metodologia <b>relazionale<i>, </i></b>tramite vere e proprie <i>query SQL</i>.</p>
<p>Ma cosa intendo per &#8220;<em>database lato-client</em>&#8220;?</p>
<blockquote><p>Per<em> database lato-client</em> intendo un tipo di database che risiede nel browser utilizzato dall&#8217;utente, grazie al quale possiamo evitare <strong>di dover comunicare con il server</strong>, come per esempio per mezzo di chiamate ajax.</p></blockquote>
<hr />
<p><em>Come creare una #mobileapp: salvataggio dati con #database #SQL lato-client</em><br /><a href='https://twitter.com/share?text=Come+creare+una+%23mobileapp%3A+salvataggio+dati+con+%23database+%23SQL+lato-client&#038;via=upCreativeIta&#038;related=upCreativeIta&#038;url=https://www.upcreative.net/come-creare-un-app-in-html-salvataggio-dati-con-database-sql-lato-client-parte-1/' target='_blank'>Click To Tweet</a></p>
<hr />
<h2>Come creare un app: due tipi di database lato-client</h2>
<p><img class="aligncenter wp-image-3965 size-full" src="http://www.upcreative.net/wp-content/uploads/2014/05/Come-creare-un-app-Web-SQL-ed-IndexedDB.jpg" alt="Come-creare-un-app-Web-SQL-ed-IndexedDB" width="690" height="272" /></p>
<p>Lo sviluppatore ha a disposizione <b>due tipi diversi di database lato client in HTML5</b>:</p>
<ul>
<li><b>Web Sql (di tipo relazionale)</b>: mette a disposizione un modello di API che permettono di eseguire delle query tramite una variante di linguaggio SQL.</li>
<li><b>IndexedDB (di tipo coppia chiave-valore)</b>: definisce un modello API con le quali è possibile lavorare in un database di record con valori semplici ed oggetti gerarchici.</li>
</ul>
<p>Come per il <i>localStorage</i>, anche nel caso dei Database <i>Web Sql </i>ed <i>IndexedDB  </i>generalmente abbiamo a disposizione una capacità di memoria predefinita di 5MB, che può variare a seconda della versione del browser del dispositivo e delle impostazioni scelte dall’utente.</p>
<h3>Come creare un app: la compatibilità dei database lato-client</h3>
<p>Purtroppo nel momento in cui scrivo ci troviamo ancora in una terra al quanto instabile, per quanto riguarda i database <i>lato-client: </i></p>
<p>se da un lato il <b>WebSql </b>non sarà più mantenuto in modo attivo dalle <b><i>specifications </i>dello staff W3C </b>(ecco il link<a href="http://dev.w3.org/html5/webdatabase/"> alla pagina ufficiale w3c</a>), il che significa che in un futuro molto prossimo sarà abbandonato, dall’altro l’<b>IndexedDB </b>non è ancora supportato da Mobile Safari per iOS, che invece supporta ancora il <em>Web SQL</em> (per la tabella delle compatibilità di IndexedDB visita <a href="http://caniuse.com/indexeddb">questo link</a>). Puoi consultare la pagina ufficiale w3c dell’IndexedDB <a href="http://www.w3.org/TR/IndexedDB/">collegati a questo indirizzo</a>.</p>
<p>Siccome stiamo parlando di <b>Mobile </b>App, e siccome il numero di dispositivi Apple rappresenta <strong>una grandissima fetta dell’utenza mondiale</strong> (quindi una grandissima portata al livello di audience e possibilità di mercato), è opportuno secondo me lavorare ancora con il database <i>WebSql,</i> per dirigersi poi verso l’IndexedDB mano a mano che esso sarà supportato da tutti i dispositivi.</p>
<p><img class="aligncenter wp-image-3966 size-full" src="http://www.upcreative.net/wp-content/uploads/2014/05/come-creare-un-app-w3c-specification.jpg" alt="come-creare-un-app-w3c-specification" width="690" height="272" /></p>
<p>Tra l’altro, anche le versioni desktop di Chrome, Safari ed Opera supportano il WebSql, il che ci dà la possibilità di testare eventualmente il salvataggio dati anche su browser desktop, evitando di effettuare ogni volta il <em>deploy</em> nel dispositivo mobile.</p>
<p>L&#8217;<em>indexedDB</em> inoltre non è un modello di database relazionale.</p>
<p>Per ora prenderemo quindi in considerazione solamente il database <i>WebSql</i>.</p>
<hr />
<p><em>Come creare una #mobileapp: salvataggio dati con #database #SQL lato-client</em><br /><a href='https://twitter.com/share?text=Come+creare+una+%23mobileapp%3A+salvataggio+dati+con+%23database+%23SQL+lato-client&#038;via=upCreativeIta&#038;related=upCreativeIta&#038;url=https://www.upcreative.net/come-creare-un-app-in-html-salvataggio-dati-con-database-sql-lato-client-parte-1/' target='_blank'>Click To Tweet</a></p>
<hr />
<h3>Come creare un app: Il database Web SQL</h3>
<p>Abbiamo detto che <b>il Database Web SQL permette di utilizzare l’SQL lato-client</b>.</p>
<p>Quindi, se hai un background da programmatore <em>back-end</em> (come la maggior parte dei web designers) oppure sei un programmatore <em>front-end</em> con nozioni di <em>back-end,</em> non avrai problemi con l’SQL, altrimenti apprendere l’SQL sarà uno stimolo per poter imparare una nuova competenza.</p>
<p>La sintassi del Web Sql è basata sull’SQLite, ma è molto similare anche ad altri database relazionali com MySql, MSSql e via dicendo.</p>
<p><b>Come si usa</b></p>
<p>Vediamo le nozioni principali del Web SQL (ovviamente se vuoi approfondire l’argomento, dal nostro caro &#8220;amico Google&#8221; potrai trovare tutte le informazioni che ti interessano).</p>
<p>Per sfruttare le funzionalità del Web SQL e poter salvare i dati della nostra applicazione in un database lato-client, sono 3 i <i>metodi </i>da prendere principalmente in considerazione:</p>
<ul>
<li><i>openDatabase</i></li>
<li><i>transaction</i></li>
<li><i>executeSql</i></li>
</ul>
<h3>Come creare un app: il database SQL lato client parte 1 &#8211; conclusioni</h3>
<p><strong>Nella seconda parte di questa guida</strong> analizzeremo come poter utilizzare le funzionalità principali del Web SQL tramite i 3 metodi appena elencati, che ci forniscono tutto ciò di cui abbiamo bisogno per poter <strong>creare nuovi database e stabilire una connessione con quelli già esistenti</strong>, oppure effettuare altre operazioni fondamentali come la <strong>creazione di tabelle</strong>, <strong>l&#8217;inserimento, la modifica o la cancellazione di records</strong>.</p>
<p>E tu? Hai mai utilizzato i database lato-client per i tuoi progetti?</p>
<p>Magari l&#8217;hai utilizzata per salvare qualche tipo di dato, oppure pensi che potrebbe essere una possibile soluzione per il tuo prossimo progetto. Scrivi pure tutte le tue considerazioni e/o perplessità al riguardo nei commenti, e sarò lieto di aiutarti a capire se il Web SQL potrebbe essere implementato nei tuoi lavori.</p>

		</div> 
	</div> <div class="g-cols color_alternate w-actionbox"><div class="one-half">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h3>Crea la tua mobile app in HTML, CSS3 e Javascript</h3>
<p>Utilizzando il sistema di salvataggio Web SQL insieme a molte altre tecniche, ho realizzato più di 10 mobile app in HTML, CSS3 e Javascript (tra cui <a title="Tint HTML mobile app" href="http://www.upcreative.net/tint-weather-app/">Tint</a> e <a title="Dieta SI o NO? HTML Mobile app" href="http://www.upcreative.net/app-dieta-si-o-no/">Dieta SI o NO?</a>).</p>
<p>Se anche tu vuoi realizzare la tua applicazione in HTML, CSS e javascript da distribuire nei vari store, forse potrebbe interessarti il mio e-book <strong><a title="HTML Mobile Accelerato - Come creare una mobile app in HTML, CSS e Javacript" href="http://www.upcreative.net/html-mobile-accelerato/">HTML Mobile Accelerato</a>.</strong>
		</div> 
	</div> </div><div class="one-half">
	<div class="wpb_single_image wpb_content_element align_center">
		<div class="wpb_wrapper">
			
			<img width="563" height="418" src="http://www.upcreative.net/wp-content/uploads/2013/11/HTML-mobile-accelerato-ebook-cover1.png" class="attachment-full" alt="HTML-mobile-accelerato-ebook-cover" />
		</div> 
	</div> 
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			<div class="widget_wysija_cont shortcode_wysija"><div id="msg-form-wysija-shortcode6ab2515b3c033-4" class="wysija-msg ajax"></div><form id="form-wysija-shortcode6ab2515b3c033-4" method="post" action="#wysija" class="widget_wysija shortcode_wysija">
<p class="wysija-paragraph">
    
    
    	<input type="text" name="wysija[user][email]" class="wysija-input validate[required,custom[email]]" title="Inserisci la tua mail" placeholder="Inserisci la tua mail" value="" />
    
    
    
    <span class="abs-req">
        <input type="text" name="wysija[user][abs][email]" class="wysija-input validated[abs][email]" value="" />
    </span>
    
</p>
<input class="wysija-submit wysija-submit-field" type="submit" value="Tienimi aggiornato/a" />

    <input type="hidden" name="form_id" value="4" />
    <input type="hidden" name="action" value="save" />
    <input type="hidden" name="controller" value="subscribers" />
    <input type="hidden" value="1" name="wysija-page" />

    
        <input type="hidden" name="wysija[user_list][list_ids]" value="4,1" />
    
 </form></div>
		</div> 
	</div> </div></div></div></div>
</div></div><p>The post <a rel="nofollow" href="https://www.upcreative.net/come-creare-un-app-in-html-salvataggio-dati-con-database-sql-lato-client-parte-1/">Come creare un app in HTML: salvataggio dati con database SQL lato-client &#8211; parte 1</a> appeared first on <a rel="nofollow" href="https://www.upcreative.net">upCreative</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.upcreative.net/come-creare-un-app-in-html-salvataggio-dati-con-database-sql-lato-client-parte-1/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>
