Ver Mensaje Individual
  #10  
Antiguo 09-08-2011
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Reputación: 24
guillotmarc Va por buen camino
Cita:
Empezado por amerika111 Ver Mensaje
SET T_NOMTOT =APATERNO+' '+AMATERNO+' '+NOMBRES
Vaya, pensaba que en Firebird solo concatenaba el operador ||, y que por tanto esa línea había que traducirla como :

T_NOMTOT = APATERNO || ' ' || AMATERNO || ' ' || NOMBRES

Pero si dices que te funciona bien, entonces adelante.

Cita:
Empezado por amerika111 Ver Mensaje
y hay otra palabra patindex no se a que se refiere..

SET NOMBRE1_LONGITUD = PATINDEX('% %',NOMBRES)
Esta función retorna la primera aparición de una expresión en una cadena. En concreto te retorna la posición del primer espacio en blanco (y por tanto equivale a la longitud del nombre propio).

http://msdn.microsoft.com/en-us/library/ms188395.aspx

Deberías poder sustituirlo por :

NOMBRE1_LONGITUD = position(' ', NOMBRES)

La función POSITION se añadió en Firebird 2.1. Por lo tanto necesitas usar Firebird 2.1 o 2.5, para que esta línea funcione correctamente. Si usas una versión anterior de Firebird, entonces debes buscar una UDF que te brinde esta función (o similar), o bien, escribir un bucle recorriendo NOMBRES, para localizar donde está la primera cadena en blanco.

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita