Ver Mensaje Individual
  #7  
Antiguo 05-04-2010
Avatar de yapt
yapt yapt is offline
Miembro
 
Registrado: sep 2006
Ubicación: España
Posts: 258
Reputación: 20
yapt Va por buen camino
Hola,

efectivamente, la solución pasa por hacer un Cast al Variant (segundo parámetro) que pasabas a la función Pos en tu ejemplo.

Pero, por si alguien tiene interés, este problema (que aparece ya en Delphi 2009) no es por el tratamiento de las cadenas UNICODE.

De hecho, la llamada podría haberse realizado perfectamente de este modo:

Código Delphi [-]
if Pos(Column.FieldName, QAkg.SQL.Strings[QAkg.SQL.Count-2]) <> 0 then
El asunto, como bien explica Marco Cantú en su libro Delphi 2009 HandBook (pag. 213) es porque a partir de Delphi 2009 se controla, de forma más estricta, el paso de parámetros Variant a funciones que definen parámetros de un tipo concreto (no Variant).

En Delphi 2007 esta llamada podría haber dado un error en Runtime. Ahora, el error se produce en el momento de la compilación.

Si alguien tiene más interés, creo que lo justo es aconsejaos comprar el libro (que también está en castellano).

Saludos.

Última edición por yapt fecha: 05-04-2010 a las 00:52:52. Razón: Modificado el código Delphi...
Responder Con Cita