Ver Mensaje Individual
  #16  
Antiguo 10-08-2011
amerika111 amerika111 is offline
Miembro
 
Registrado: nov 2009
Posts: 168
Reputación: 0
amerika111 cantidad desconocida en este momento
Cita:
Empezado por guillotmarc Ver Mensaje
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.



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.
y encuanto a la udf sobre calcular el rfc... vi que comentaste algo sobre esto

yo la he probado pero no me funciona no se si tenga que realizar un paso o algo asi para que funcione, este es el dll de la funcion

DECLARE EXTERNAL FUNCTION GENRFC
CSTRING(30),
CSTRING(30),
CSTRING(30),
DATE
RETURNS CSTRING(15)
ENTRY_POINT 'GeneraRFC' MODULE_NAME 'Project1.dll';


y la libreria es project1.dll

esa la coloque en la carpeta de firebird
de udf..
Responder Con Cita