Differenza tra tipi char e varchar

Giorgio Borelli

State progettando la tabella del vostro database, e dovete definire un tipo per memorizzare delle stringhe (caratteri alfanumerici) ed improvvisamente vi sorge un dubbio, ma devo usare un CHAR o VARCHAR, qual'è la differenza? Andiamo a conoscere questi tipi più da vicini e chiariamo ogni dubbio sul loro utilizzo.

Prosegue...

Categorie: database | MySql | Sql Server

Tags: , ,

Ottenere record precedente e successivo con query al database

Giorgio Borelli

Dato un record della nostra tabella, può essere utile in diverse occasioni voler ottenere il record precedente e/o il record successivo dal database, che sia MySql, SqlServer, Oracle o altro RDBMS. Supponiamo ad esempio di avere la nostra piattaforma di gestione dei contenuti (CMS - Content Management System) e di voler implementare un motore di blogging, una funzionalità molto diffusa su tutti i blog è quella di consentire di leggere articolo precedente e leggi articolo successivo  dato un post o articolo (il nostro record), per far ciò ci serve ottenere dal database il record  precedente e successivo.

Questo è solo un esempio ma i casi potrebbero essere tanti, ottenere il record precedente e successivo è molto semplice e può tornare utile in tanti contesti, per realizzare ciò basta fare due query al database, andiamo a vedere come fare.

Prosegue...

Categorie: database

Tags: , , , ,

Come inserire un record vuoto, con la sola chiave primaria in MySql

Giorgio Borelli

In base alle vostre esigenze di sviluppo, avete bisogno d'inserire un record vuoto in MySql prima di eseguire una qualsiasi operazione su di esso, agendo sul solo campo chiave primaria della tabella, bene, adottando un piccolo trucco è possibile far inserire a MySql la sola chiave primaria al nostro record garantendo un auto incremento sempre automatizzato, andiamo a vedere come fare. Prosegue...

Categorie: database | MySql

Tags:

Come ottenere il valore timestamp della data corrente in MySql

Giorgio Borelli

Se avete necessità di sapere e recuperare il valore della data corrente in timestamp in una query MySql, il noto RDBMS ci viene incontro con una funzione che ci facilita la vita.

Come saprete il timestamp è un tipo di dato usato nella trattazione delle date che indica con un intero senza segno il numero di secondi trascorsi dal 1 Gennaio 1970 ad oggi. Sebbene sia in PHP che in MySql esiste il "tipo" Date per l'implementazione di funzioni sulle date ed il tempo, il timestamp essendo come detto un intero, un tipo primitivo e facilmente trattabile, viene spesso usato e semplifica il lavoro degli sviluppatori durante la trattazione delle informazioni temporali. Prosegue...

Categorie: database | MySql

Tags: , ,

Come azzerare il campo contatore in Access

Giorgio Borelli

Record di una tabella Access, con campo contatore Id che non parte da zeroIl campo contatore o Id Replica in un database Access è un numero naturale crescente di 16 bytes, non può essere ri-ordinato e non può essere fatto ripartire da zero o da un numero intermedio rispetto al numero più grande che attualmente è inserito. Proprio per queste sue particolarità, viene usato quasi sempre come chiave primaria in una tabella, proprio perchè essendo un numero unico, identifica in maniera univoca il record. Se ad es. abbiamo 3 records, numerati con Id 5, 6 e 7, se cancelliamo il record 6, il contatore ad un nuovo inserimento comincerà a partire da 8 perdendo la posizione intermedia; o ancora se il nostro contatore è arrivato al record 120 e svuotiamo la tabella, questo ripartirà da 121 e non da zero.

Sebbene questo non sia un problema determinante, tuttavia, da parte degli utilizzatori di Access è molto sentita l'esigenza di azzerare i campi contatore, vuoi perchè la fase di sviluppo è terminata e si desidera partire con un database vuoto ed i contatori azzerati, vuoi per una maggiore precisione e pulizia del database. Qualunque sia lo scopo o l'esigenza Come fare per azzerare il campo contatore in Access?

Prosegue...

Categorie: Access | database

Tags: ,

DbException (0x80040e57): Impossibile aggiungere la quantità di dati desiderata. Inserire o incollare meno dati

Giorgio Borelli

OleDbException (0x80040e57): Impossibile aggiungere la quantità di dati desiderata. Inserire o incollare meno datiDurante la fase di sviluppo di un'applicativo, possiamo imbatterci in questo messaggio d'errore "OleDbException (0x80040e57): Inserire o incollare meno dati" generato a run-time, ovvero si manifesta solo in fase di esecuzione, e non ne capiamo il motivo, il tutto sembra girare perfettamente, funziona, eppure in qualche particolare caso compare questa eccezione, qual'è la causa? Quale errore commettiamo?

L'eccezione a cui faccio riferimento è generata dal Data Provider OleDb, compatibile sia con Access che con le vecchie versioni di Sql Server (dalla 7.0 in giù), il problema però è generico e può presentarsi anche con Data Provider specifici come il Jet Engine di Access. Il problema è nella insert, o meglio si manifesta durante un comando sql insert, risolverlo è davvero banale, andiamo a scoprire come fare.

Prosegue...

Categorie: Access | database | Sql Server

Tags: , ,

Installare Microsoft Sql Server Management Studio Express 2008

Giorgio Borelli

 

Installare Microsoft Sql Server Management Studio Express 2008Nell'ultima versione del database di casa Microsoft, il Sql Server 2008, tutto il processo d'installazione, prerequisiti, documentazione e quant'altro viene gestito tramite un comodo installer con un menù in stile web, sia che Sql Server 2008 sia nella versione Standard (a pagamento) che nella versione Express.

Chi usa Microsoft Sql Server, sicuramente conosce e fà uso dell'IDE (lo strumento grafico) per la gestione dello stesso RDBMS Sql Server, noto come Microsoft Sql Server Management Studio (SSMS), uno strumento indispensabile per gestire e sviluppare i propri database.

Il Microsoft Sql Server Management Studio Express 2008 (SSMSE) può essere installato assieme all'istanza di Sql Server 2008 oppure come pacchetto separato sempre tramite lo stesso installer di Sql Server, in quest'ultimo caso l'installazione di SSMSE può risultare di non immediata intuizione, in quanto l'installer di Sql Server non ci mostra una voce specifica per il suo setup.

Anche un utente più smaliziato di Sql Server, potrebbe trovarsi un'attimino disorientato di fronte questa inutile complicazione per l'installazione del Management Studio Express, fortunatamente la soluzione è molto semplice, e basta affidarsi al solito installer di Sql Server 2008, andiamo a scoprire allora quali sono i passi da seguire per l'installazione di Sql Server Management Studio Express 2008 successivamente all'installazione di Sql Server.

Prosegue...

Categorie: database | Sql Server

Tags: ,

I tipi di dato in Sql Server

Giorgio Borelli

Visualizzazione colonne con i relativi tipi di dato di una tabella Microsoft Sql ServerNel precedente articolo avevamo visto quali erano i principali tipi di dati di un database Access, e spiegato l'importanza del corretto utilizzo dei tipi nella definizione di una tabella di un database. Ribadiamo nuovamente che la definizione dei tipi in un database è un'operazione fondamentale, la scelta adeguata del tipo di dato adatto a rappresentare un'informazione costituisce la base per lo sviluppo di un'applicazione funzionale e manutenibile, e permette inoltre di ottimizzare le tabelle e lo spazio che esse occupano.

Pertanto, oggi voglio parlarvi dei tipi definibili per un'altro noto e diffusissimo database relazionale, stiamo parlando di Sql Server, il potente database Engine di casa Microsoft.

Anche per Sql Server conoscere e definire i tipi di dati corretti, è un passo di fondamentale per l'architettura di un database performante.  Noteremo come a differenza di Access i tipi di dato definibili in Sql Server è molto più ampia e completa sotto tutti i punti di vista, si possono infatti di definire tipi per qualsivoglia dato e con dimensioni di gran lunga superiori a quelle permesse d'Access, sino a giungere alla dichiarazione di tipi personalizzati definiti dall'utente. Andiamo quindi a vedere quindi quali sono i tipi di dato in Sql Server.

Prosegue...

Categorie: database | Sql Server

Tags: ,

I tipi di dato in Access

Giorgio Borelli

Visualizzazione struttura di una tabella Access con vari tipi di datoQuando si progetta un database per un'applicativo, dopo aver pensato bene e fatta un'analisi dell'architettura della sorgente dati e steso il diagramma ERD (Entità Relazioni), il passo successivo è quello di cominciare a definire le tabelle con i propri tipi.

La definizione dei tipi in un database è un'operazione molto importante, poichè la scelta adeguata del tipo di dato adatto a rappresentare un'informazione, costituisce la base per lo sviluppo di un'applicazione funzionale e manutenibile, e permette inoltre di ottimizzare le tabelle, archiviando i dati nel loro formato corretto e rispare bytes gestendo il tipo corretto.

Anche per Access vale quanto detto, sebbene sia usato spesso per applicazioni di piccole dimensioni, la definizione dei tipi in Access assume un'importanza se vogliamo ancora più rilevante, proprio per ottimizzare al meglio la base di dati e risparmiare spazio, sfruttando così appieno le sue potenzialità ed il limite di 2Gb di spazio per l'archiviazione dati che esso ci mette a disposizione.

Conoscere e definire i tipi di dati corretti in Access, è di fondamentale importanza per la stesura di un database performante. Andiamo a vedere quali sono i tipi di dati definibili in Access.

Prosegue...

Categorie: Access | database

Tags: ,

Implementare il vincolo d'Integrità Referenziale in un database Access

Giorgio Borelli

Diagramma Entity-Relationship Diagram o ERD, delle relazioni tra le tabelle  Membership User di ASP.NET di un database AccessUn database Relazionale, a differenza di un database "normale", permette di definire delle relazioni tra le varie entità (tabelle) del db in modo tale da correlare i vari dati secondo una logica che astrae la realtà. Le relazioni tra le tabelle, permettono di manipolare i dati più facilmente e soprattutto evitano la ridondanza dei dati, ovvero la duplicazione inevitabile delle informazioni che si avrebbe nel caso di definizione di tabelle indipendenti. Un Diagramma Entità Relazioni (Entity-Relationship Diagram o ERD) come quello mostrato in figura, rende immediatamente idea di come le tabelle del database sono collegate tra di esse e quali siano le loro relazione.

La potenza e la flessibilità delle relazioni tra l'entità del db ci consente di collegare i dati che andremo a gestire con la nostra applicazione, collegando i record delle nostre tabelle in modo da gestire più informazioni (lettura, scrittura, aggiornamento) con una singola query sql, anzichè con molteplici query su singole tabelle indipendenti, ed evitare di fatto la replicazione di record (ridondanza dei dati) ed informazioni già presenti. Tutti i più moderni e diffusi database  quali: Sql Server, MySql, Oracle, Postgree SQL sono relazionali, e sebbene meno potente di quest'ultimi anche Microsoft Access è un database relazionale e permette di definire le relazioni tra le tabelle sia in maniera manuale che in modo guidato con estrema semplicità.

Un'altro aspetto fondamentale da tenere in considerazione durante la progettazione di un database e per la definizione delle relazioni tra le tabelle e se queste devono soddisfare o meno determinate regole di unicità e vincoli d'integrità, che assicurino la correttezza e la consistenza dei dati. Uno dei vincoli sicuramente più usato e diffuso è quello d'integrità referenziale.

Il Vincolo d'Integrità Referenziale è una "regola" che stabilisce che la presenza dei record tra le entità relazionate soddisfi necessariamente la presenza delle chiavi nell'una e nell'altra tabella. Tale vincolo assume pertanto il significato di predicato, che può assumere il valore di vero o falso, a seconda che la base di dati definita lo soddisfi o meno. Il Vincolo d'Integrità Referenziale (uno dei più diffusi ed usato), assicura la consistenza e la correttezza dei record presenti in un database, evitando che ci siano record orfani, ovvero che non hanno riferimento nella tabella collegata.

Anche con Access è possibile definire il Vincolo d'Integrità Referenziale, peremettendo di specificare anche quali azioni (effetto a catena) intraprendere sui record nel caso venga modificato o cancellato un record relazionato con record di altre tabelle.

Prosegue...

Categorie: Access | database

Tags: