Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-07-2007
rruffino rruffino is offline
Miembro
 
Registrado: dic 2004
Ubicación: Berrotaran, Cordoba - Argentina
Posts: 215
Poder: 20
rruffino Va por buen camino
Question SubString en Procedimiento Almacenado

Hola amigos del foro. Estoy teniendo un problema. Estoy haciendo un procedimiento almacenado que genera un codigo de barras. Al momento de calcular los digitos verificadores necesito partir 12 strings distintos caracter a caracter y luego realizar una operación matemática. Los caracteres de cada string son numeros, para hacerlo utilizo la udf SUBSTR, pero al correr el sp da error de division por cer, o como si fallo la truncación. Cuando hago el debug del sp no tira ningu error y los calculos son correctos. Aqui les dejo el cofdigo

Código SQL [-]
  longitud=STRLEN(:code);
  dias=1;
  temporal='135793579357935793579357935793579357935793579357935';
  suma=0;
  while(:dias<=:longitud)do
    begin
      char_1=SUBSTR(:code, :dias, :dias);
      char_2=SUBSTR(:temporal, :dias, :dias);
      suma=suma + (Cast(:Char_1 as integer) * Cast(:char_2 as Integer));
      dias=dias+1;
    end

Code y Temporal son las cadenas de texto.

Estoy usando interbase 6.5.
Desde ya muchas gracias y espero sus respuestas.
Saludos, Román.-
Responder Con Cita
  #2  
Antiguo 24-07-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
Por alguna razón creo que cuando envías el parámetro de entrada llamado ":Code" desde la aplicación al procedimiento almacenado, estas incluyendo el carácter que usualmente envían los lectores de codigo de barras al final de la cadena; La mayoría envían por defecto un [TAB] y otros un [ENTER].


Pregunta: ¿En Interbase 6.5 no existe la sentencia substring, como en FireBird 1.5?
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #3  
Antiguo 24-07-2007
Avatar de Paoti
Paoti Paoti is offline
Miembro
 
Registrado: may 2003
Ubicación: Monterrey. N.L., México
Posts: 612
Poder: 21
Paoti Va por buen camino
El error, ami me paso la semana pasada, y es por que quieres almacenar en una variable o campo un valor mucho más grande que el permitido pro la variable, sea tipo numerico o cadena de texto.




jhonny desconcozco si está la función en interbase, en fb 1_5 sí.
__________________
Estudia y anda en la calle.... que asi serás el doble de listo que los demás...

análisis de información
análisis y diseño de sistemas

Paoti Rios Reséndiz
Responder Con Cita
  #4  
Antiguo 28-07-2007
rruffino rruffino is offline
Miembro
 
Registrado: dic 2004
Ubicación: Berrotaran, Cordoba - Argentina
Posts: 215
Poder: 20
rruffino Va por buen camino
Gracias

Es como dices, trato de guardar algo que no alcanza, y no, la udf no esta en interbase. Ya solucione, gracias!!!
Responder Con Cita
  #5  
Antiguo 30-07-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
Cita:
Empezado por rruffino
Es como dices, trato de guardar algo que no alcanza, y no, la udf no esta en interbase. Ya solucione, gracias!!!
Solo aclarar una cosita, en FireBird Substring no es una UDF, es una sentencia
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #6  
Antiguo 01-08-2007
Avatar de rastafarey
rastafarey rastafarey is offline
Miembro
 
Registrado: nov 2003
Posts: 927
Poder: 21
rastafarey Va por buen camino
Resp

El error es division por cero o truncacion de cadena.

Solo hay que leer los errores completos.
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
procedimiento almacenado kejos MS SQL Server 3 02-09-2008 17:39:22
Procedimiento almacenado efelix MS SQL Server 7 21-11-2007 17:53:00
Procedimiento Almacenado egostar Firebird e Interbase 4 15-12-2006 02:04:07
Procedimiento almacenado y Ado LucianoRey MS SQL Server 11 06-07-2004 22:55:23
procedimiento almacenado haron Firebird e Interbase 2 29-09-2003 01:09:56


La franja horaria es GMT +2. Ahora son las 10:06:47.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi