Domanda

Abbiamo in fase di aggiornamento la nostra applicazione per Unicode completo comptibility come abbiamo recentemente ottenuto Delphi 2009, che fornisce questo, fuori dalla scatola.Sto cercando qualcuno che ha esperienza con l'aggiornamento di un applicazione per accettare i caratteri Unicode.In particolare le risposte a tutte le seguenti domande.

  • Abbiamo bisogno di cambiare il tipo Varchar NVarchar, Char a NChar.Ci sono trucchi qui.
  • Abbiamo bisogno di aggiornare tutte le istruzioni sql per includere N davanti a qualsiasi stringhe sql.Aggiornamento tbl_Customer set Nome = 'Rossi' deve diventare Aggiornamento tbl_Customer set Nome = N'Smith' .C'è un modo per impostazione predefinita, questo per alcuni Campi.Sembra straordinario questo è ancora necessario.
  • È possibile ottenere qualsiasi default impostato in SQLServer che renderà questo più semplice?

ps Abbiamo anche bisogno di aggiornare il nostro Oracolo codice

È stato utile?

Soluzione

Oracle non richiedono l'utilizzo di nvarchar per memorizzare le stringhe Unicode—il server può essere configurato per memorizzare varchar2 in UTF-8.Se è supportato solo ASCII prima, deve essere trasparente.Che dovrebbe evitare la necessità per tutte le applicazioni in-side di ricerca e sostituzione per ' per N'.

Come per Damien punto:non potrebbe aiutare ora, ma si dovrebbe davvero farne una priorità per sbarazzarsi di senza parametri di query.Essi non sono altro che un peso per il sistema e manutenzione, il rendimento e la sicurezza di vista.

Altri suggerimenti

Ovvio, con SQL Server è che i limiti per i ncar/nvarchar sono la metà di loro char/varchar controparti (a meno che non si esegue la migrazione di tutto > 4000 a nvarchar(max))

Damien

Io non sono sicuro di quanto sia utile la tua risposta.Abbiamo una grande di 700.000 linee compilato il codice che è stato scritto negli ultimi dieci anni, che contiene un grande numero di query sql.La maggior parte sono standardizzati in giù per un paio di funzioni di base per la maggior parte degli aggiornamenti sul database.Questi possono essere aggiornati in modo molto semplice.Tuttavia abbiamo bisogno di controllare ogni clausola where per CustomerName = '%s' che ora dovrebbe essere CustomerName = N'%s'

Questa è una vera domanda che necessita di una risposta reale.

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