Cita:
Empezado por guillotmarc
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..