![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Hola amerika.
Confieso que quedé como oscarac cuando leí el título ![]() Mirá, busqué un poco y encontre esta página donde está el código para calcularlo desde un stored procedure (Posts #13 y #14). Como supondrás, no tengo idea si funciona, pero con probar no perdes nada... ![]() Un saludo y ojalá te sirva.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
|
#2
|
||||
|
||||
|
Ese código es en T-SQL de Microsoft SQL Server, por lo que no va a funcionar directamente en Firebird, pero es bastante sencillo traducirlo al Transact SQL estandarizado de Firebird.
Si tienes algún problema o duda sobre como tratar alguna sentencia concreta, no dudes en preguntar. Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
|
#3
|
||||
|
||||
|
Hola guillotmarc.
Me había dado cuenta que no era código de Firebird, aunque no sabía que era de SQL Sever. Sin embargo no tengo idea si, una vez traducido, funcionará la lógica en sí del algorítmo. Lamentablemente va a tener que hacer la traducción y prueba para verificarlo, espero que no le sea una tarea estéril... Un saludo.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
|
#4
|
|||
|
|||
|
Cita:
donde dice: -INICIALZA VARIABLES SET NOMBRES = LTRIM(RTRIM(:NOMBRES_AUX)) SET APATERNO = LTRIM(RTRIM(:APATERNO_AUX)) SET AMATERNO = LTRIM(RTRIM(:AMATERNO_AUX)) SET T_NOMTOT =APATERNO+' '+AMATERNO+' '+NOMBRES esto si se puede asi en firebird, le e quitado los @ y hay otra palabra patindex no se a que se refiere.. SET NOMBRE1_LONGITUD = PATINDEX('% %',NOMBRES) |
|
#5
|
||||
|
||||
|
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:
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). |
|
#6
|
|||
|
|||
|
hola que tal he intentado convertir el codio pero no mas no, me vota muchos errores de sintaxis....
me he topado con esto, de un funcion pero me marca error http://www.delphiaccess.com/forum/utilerias-22/udf-firebirdinterbase-(lazarus)/ error invalid request BLR at offset 79 function GENRFC is not defined module name or entrypoint could not be found |
|
#7
|
|||
|
|||
|
Nomas no veo por donde...
|
|
#8
|
|||
|
|||
|
especificamente estos son los errores que arroja.
Última edición por amerika111 fecha: 12-04-2012 a las 19:12:20. |
|
#9
|
|||
|
|||
|
Cita:
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.. |
|
#10
|
||||
|
||||
|
Hola.
Cita:
Ejplo. Esta sentencia : NOMBRE1_LONGITUD = position(' ', NOMBRES); Equivale a este bucle :
Finalmente, respecto a generar toda la función RFC en Delphi y utilizarla en Firebird mediante una UDF, te dejo un ejemplo de como hacer la DLL en Delphi para que pueda ser utilizada en Firebird. http://www.firebirdfaq.org/faq83/ Traducción automática de Google Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
|
#11
|
|||
|
|||
|
Amerika111:
Ofrezco mi humilde ayuda para codificar dicho procedimiento almacenado, siempre y cuando me hagas llegar el proceso por escrito (lo mas explicito que se pueda, así como también algunos casos típicos para ver que todo funciona correctamente), no quiero estar viendo el código en otros lenguajes y hacer suposiciones que no siempre resultan ciertas, ¿me explico?. Espero tu respuesta. Saludos, Gerardo Suárez Trejo |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| condicionar un procedimiento dentro de otro procedimiento | yossi | Varios | 7 | 17-05-2010 10:47:14 |
| Ayuda, como llamar a un procedimiento desde otro procedimiento? | Ariatna | Varios | 1 | 01-02-2005 04:05:35 |
| error calculo en udf | marrullas | Firebird e Interbase | 0 | 02-11-2004 21:01:58 |
| Calculo con un String | AMC | Varios | 7 | 14-09-2004 20:46:53 |
| Calculo De Totales | PETERKANTROPUS | Tablas planas | 2 | 25-05-2004 03:06:14 |
|