Pregunta

Queremos utilizar Unicode con Delphi 2009 y Interbase, y encontró que para cambiar la codificación de caracteres de WIN1252 a UNICODE_FSS o UTF8 primero tenemos que reemplazar todas las instancias de TStringField con TWideStringField en todos los Módulos de Datos. Por alrededor de 60 Módulos de Datos, simplemente no podemos hacer esto más de un fin de semana. Puedo ver sólo dos opciones para una estrategia de migración:

  • encontrar una solución que permite utilizar los campos TStringField existentes sin que se active el 'esperado: TWideStringField' error

o

  • Eliminar todos los campos persistentes para evitar el conflicto de tipo cadena

Por lo que yo sé los tipos de campo para los campos de base de datos persistentes están registrados en algún tipo de registro de clase. Podríamos usar esto para hacer Delphi cree que un TStringField está bien para una columna de caracteres Interbase con UNICODE_FSS o codificación UTF-8?

O podemos utilizar un controlador dbExpress comercial que trabajo con TStringField en ambos casos?

Véase también mi pregunta relacionada: Delphi y Interbase dbexpress: UTF8 pasos de migración y los riesgos?


Actualización: después de reemplazar todas las apariciones de TStringField con TWideStringField en todos los archivos DFM y PAS, encontramos que ahora también es necesario multiplicar el valor de la propiedad de 'tamaño' de los TWideStringFields por cuatro (si usamos UTF-8) en unos 100 lugares. Así que empiezo una recompensa por una manera de reducir el trabajo manual para fijar los DFms

¿Fue útil?

Solución

El uso de caracteres Unicode TStringField le conseguirá en problemas, tendrá $ 00 Contenidos en que, básicamente, poner fin a la cadena con, por ejemplo, los conductores dbExpress, ya que estas aceptar cadenas P (ANSI) Char. Usando TWideStringField utiliza PWideChar en dbexpress, para que el conductor está a la espera verdaderos puntos de código Unicode.

No hay salida fácil, me temo.

Otros consejos

A Sergey Kryukov, ‘Controles Unicode: ¿Qué puede VCL Do?’, La Revista de Delphi, 116 (abril de 2005), p. 33-43 ( El código fuente ) La revista de Delphi

Unfortunately, the text of the original article is not freely available, but ask me if you have questions.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top