Home > Articoli > Barcode check digit calculator for SQL Server and Azure SQL DB

Barcode check digit calculator for SQL Server and Azure SQL DB

Chi ha avuto l’opportunità di sviluppare applicazioni per trasportare i prodotti da un luogo ad un altro, ha appreso che per gestire in modo efficiente la movimentazione delle merci all’interno di un magazzino è necessario adottare un sistema di movimentazione basato su codici a barre.

Il codice a barre è la rappresentazione grafica di una sequenza di numeri e altri simboli. La rappresentazione consiste di linee (barre) e spazi. Un codice a barre è tipicamente composto da cinque parti, una di queste è la cifra di controllo, nota anche come check digit. L’algoritmo di calcolo della cifra di controllo è descritto in questa pagina del sito di GS1, l’associazione internazionale che si occupa di diffondere gli standard progettati per migliorare l’efficienza della filiera domanda-offerta, tra questi c’è anche lo standard relativo ai codici a barre. In questo articolo abbiamo descritto una possibile implementazione dell’algoritmo di calcolo della cifra di controllo in TSQL, in quell’occasione abbiamo trattato il calcolo del check digit per un barcode EAN13. Recentemente, ho avuto l’occasione di migliorare la soluzione implementando le funzioni mancanti che permettono di calcolare il check digit per i seguenti tipi di barcode:

  • EAN8
  • EAN12
  • EAN13
  • EAN14
  • SSCC

La soluzione consiste di funzioni “private”, una per ogni tipologia di barcode supportata, invocate dalla funzione “pubblica” GS1CDC.GetCheckDigit che ricevuto in input il codice a barre privo della cifra di controllo, fornisce in output il check digit calcolato. Lo script GS1CDC.class.sql effettua l’installazione delle funzioni nello schema dedicato GS1CDC. La funzione GS1CDC.Uninstall permette di rimuovere facilmente gli oggetti creati per questa soluzione.

Tutto il codice è disponibile nel repository GS1-barcode-check-digit-calculator su GitHub.

Buon divertimento! Se qualcuno desidera contribuire è il benvenuto!

Chi è Sergio Govoni

Sergio Govoni è laureato in Scienze e Tecnologie Informatiche. Da oltre 16 anni lavora presso una software house che produce un noto sistema ERP, distribuito a livello nazionale ed internazionale, multi azienda client/server su piattaforma Win32. Attualmente si occupa di progettazione e analisi funzionale, coordina un team di sviluppo ed è responsabile tecnico di prodotto. Lavora con SQL Server dalla versione 7.0 e si è occupato d'implementazione e manutenzione di database relazionali in ambito gestionale, ottimizzazione delle prestazioni e problem solving. Nello staff di UGISS si dedica alla formazione e alla divulgazione in ambito SQL Server e tecnologie a esso collegate, scrivendo articoli e partecipando come speaker ai workshop e alle iniziative del primo e più importante User Group Italiano sulla tecnologia SQL Server. Ha conseguito la certificazione MCP, MCTS SQL Server. Per il suo contributo nelle comunità tecniche e per la condivisione della propria esperienza con altri, dal 2010 riceve il riconoscimento SQL Server MVP (Microsoft Most Valuable Professional). Nel corso dell'anno 2011 ha contribuito alla scrittura del libro SQL Server MVP Deep Dives Volume 2 (http://www.manning.com/delaney/).

Leggi Anche

Unit testing: Cos’è e perché è importante farlo anche per il codice T-SQL!

Questo articolo è il primo di una serie di post in cui tratteremo l’importante tema …