Visualizzazione dei risultati da 1 a 4 su 4

Discussione: [SQL] Stored procedure

  1. #1

    [SQL] Stored procedure

    Ciao a tutti,
    ho la seguente problematica e non ho idea su come poter fare a risolverla:

    Un software che stò realizzando sarà multi lingua. Per fare questo, oltre alle lable anche i campi di lookup (ad esempio il sesso sull'anagrafica clienti devono essere tali "MASCHIO"; "MALE"; ecc...) sono multi lingua. PEr fare questo ho memorizzato le traduzioni su una tabella apposita con struttura tipo questa

    codice:
    tabella: anag_sex
    Id
    desc_it
    desc_en
    desc_fr
    Sulla tabella anagrafica vado a memorizzare il campo ID

    La problematica stà sulla query per estrarre i dati. Per il momento ho usato questa soluzione

    codice:
    SELECT
      nome,
      case LANGUAGE:
        when 'IT' then anag_sex.desc_it
        when 'EN' then anag_sex.desc_en
        when 'FR' then anag_sex.desc_fr
      end as sesso;
    FROM 
      anag_cli
      INNER JOIN anag_sex ON anag_cli.id_sex=anag_sex.id
    Dato però che i campi di lookup sono parecchi ho la problematica che se un domani si voglia aggiungere una lingua devo modificare tutte le query a mano.

    Pensavo, se la cosa potesse essere risolta con una stored procedure o un function in cui gli passo come parametro la lingua e la parte inziale del campo (ad. esempio anag_sex.desc_) e lui mi restituisce il campo (non il valore).

    Qulacuno mi sa dire se è possibile e come ?

    Grazie a tutti
    Alessandro

  2. #2
    Utente di HTML.it L'avatar di vonkranz
    Registrato dal
    Sep 2001
    Messaggi
    1,387
    e se anziche' fare una tabella per ogni campo di lookup in cui memorizzi le traduzioni nelle varie lingue fai una tabella per ogni lingua in cui metti i campi di lookup tradotti?

    es:

    anziche'
    codice:
    tabella: anag_sex
    Id
    desc_it
    desc_en
    desc_fr
    
    tabella: anag_nascita
    Id
    desc_it
    desc_en
    desc_fr
    fai

    codice:
    tabella: anag_IT
    Id
    desc_sex
    desc_nascita
    
    tabella: anag_EN
    Id
    desc_sex
    desc_nascita
    ovviamente tutte le tabelle avranno identica struttura e nomi dei campi, cambia solo il contenuto memorizzato nei vari campi.
    Nella query (o stored procedure) di estrazione basta che colleghi la tabella della lingua appropriata.

  3. #3
    Scusa ma in questo modo la problematica non cambia perchè dopo dovrei recuperare in modo dinamico la TABELLA per fare la JOIN.

    Grazie comunque

    Saluti

  4. #4
    Utente di HTML.it L'avatar di vonkranz
    Registrato dal
    Sep 2001
    Messaggi
    1,387
    Originariamente inviato da xander1979
    Scusa ma in questo modo la problematica non cambia perchè dopo dovrei recuperare in modo dinamico la TABELLA per fare la JOIN.

    Grazie comunque

    Saluti
    un discorso e' cambiare il nome di una sola tabella (visto che il nome dei campi e' uguale in tutte le tabelle), un discorso e' cambiare n nomi di campi.

    poi magari hai altre problematiche di cui non sono a conoscenza
    ...and I miss you...like the deserts miss the rain...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.