Domanda

Ho un problema che sto cercando di risolvere. Abbiamo uno SQL Server 2005 in esecuzione di un sistema ERP commerciale. L'implicazione di questo è che non possiamo cambiare la struttura del database e tutti i campi di caratteri sono CHAR o VARCHAR piuttosto che tipi Unicode (NCHAR, NVARCHAR).

Abbiamo anche più istanze del software ERP, in base al Paese. Ogni paese ha un proprio database di essa la sullo stesso server di database, che si traduce in variazioni nei nomi delle tabelle in base alla istanza del software ERP che è in esecuzione. Ad esempio, la tabella cliente degli Stati Uniti si chiama US_CUSTOMER e il Regno Unito uno è GB_CUSTOMER. Abbiamo creato un database separato che rispecchia essenzialmente le tabelle di sistema ERP con i sinonimi, e poi viste che gestiscono tutte le nostre transazioni SQL contro questi sinonimi. Ciò è stato fatto da usare LINQ to SQL. Grazie per aver letto fino a questo punto:)

Il problema che abbiamo è ora stiamo attuando cinese semplificato per l'applicazione. Nel sistema ERP del cliente, si misero la tabella codici per il sistema ERP in modo che quando il sistema ERP scrive le tabelle di base, i dati vengono scritti come multi-byte. La mia domanda è come posso ottenere queste informazioni multi-byte tradotto di nuovo al cinese semplificato? Vorrei essere in grado di fare questo a livello di database, dal momento che ho sia un'applicazione web e SSRS riferisce che necessità di trarre vantaggio da esso.

Tutte le idee o le direzioni? Non credo che posso cambiare la tabella di codici, in quanto più paesi stanno utilizzando lo stesso server di database (anche se diversi database).

Grazie davanti a tempo

È stato utile?

Soluzione 2

Quello che abbiamo finito per fare questo sta scrivendo una funzione CLR che può essere chiamata dalla nostra istruzione SQL. Passiamo nella stringa e la pagina di codice desiderata e ottenere una stringa convertita restituita. La prestazione non è quello che speravamo, ma sembrava di essere l'unica strada che abbiamo trovato.

Altri suggerimenti

Stiamo dicendo che 2 personaggi varchar vengono utilizza per memorizzare 1 carattere unicode?

Se è così, provate CAST a binario a nvarchar etc (o qualcosa di simile)

In caso contrario, guarda clausole COLLATE di costringere i dati?

Modifica:

Una funzione CLR potrebbe essere la vostra unica scommessa da inviare al Remo di MultiByteToWideChar

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top