Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

 
 
Herramientas Buscar en Tema Desplegado
  #7  
Antiguo 12-09-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Efren2006.
Cita:
Empezado por Efren2006 Ver Mensaje
Se me olvidaba comentar la Función POSITION NO funciona dentro de los Procedimientos Almacenados.... Pero SI en consultas
Lamento tener que disentir nuevamente...

Realizá esta simple prueba:
Código SQL [-]
SET TERM ^;

CREATE OR ALTER PROCEDURE PR_POSITION(
  SUBSTR VARCHAR(255), STR VARCHAR(255))
RETURNS (
  RESULT SMALLINT)
AS
BEGIN
  RESULT = POSITION(SUBSTR, STR);
  SUSPEND;
END^

SET TERM ;^
Y podrás usar PR_POSITION del mismo modo que POSITION, por ejemplo:
Código SQL [-]
SET TERM ^;

CREATE OR ALTER PROCEDURE PR_TEST_PR_POSITION(
  SUBSTR VARCHAR(255), STR VARCHAR(255))
RETURNS (
  RESULT SMALLINT)
AS
BEGIN
  EXECUTE PROCEDURE PR_POSITION(SUBSTR, STR) RETURNING_VALUES(RESULT);
  SUSPEND;
END^

SET TERM ;^

Y si sos de los que te gusta ir a las bases, nada te impide hacer tu propia función POS:
Código SQL [-]
SET TERM ^ ;

CREATE OR ALTER PROCEDURE POS (
    SUBSTR VARCHAR(255),
    STR VARCHAR(255))
RETURNS (
    RESULT INTEGER)
AS
  DECLARE VARIABLE I INTEGER;
  DECLARE VARIABLE J INTEGER;
BEGIN
  I = 1;
  J = 1;
  STR = STR || ' ';
  WHILE (I <= CHAR_LENGTH(SUBSTR) AND J <= CHAR_LENGTH(STR)) DO
  BEGIN
    IF (SUBSTRING(SUBSTR FROM I FOR 1) = SUBSTRING(STR FROM J FOR 1)) THEN
      I = I + 1;
    ELSE
      I = 1;
    J = J + 1;
  END
  IF (J <= CHAR_LENGTH(STR)) THEN
    RESULT = J - I + 1;
  ELSE
    RESULT = 0;
  SUSPEND;
END^

SET TERM ; ^

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
buscar una palabra dentro de una cadena Patricio Varios 2 31-12-2010 10:48:33
Funcion para buscar cadena dentro de otra cadena y el numero de veces flystar Varios 3 02-07-2007 22:48:08
Buscar un palabra dentro de una cadena eyscom Varios 6 29-07-2006 00:05:05
buscar dentro de una cadena con repetición jzginez Varios 4 12-05-2006 21:40:18
Buscar cadena dentro de otra cadena doverzhoff Varios 4 27-01-2004 05:27:15


La franja horaria es GMT +2. Ahora son las 15:00:05.


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