Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MS SQL Server
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

 
 
Herramientas Buscar en Tema Desplegado
  #9  
Antiguo 02-10-2008
Avatar de sitrico
[sitrico] sitrico is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Caracas, Venezuela
Posts: 295
Poder: 24
sitrico Va por buen camino
Logré llegar hasta aquí :

Código SQL [-]
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go


-- Para ejecutar el procedimiento utilizas:
--Exec ObtenerDatos '1;3.5;2;B4'

ALTER FUNCTION [dbo].[SepararPiezas](@Cadena varchar(30))

RETURNS INTEGER
AS
BEGIN
DECLARE @Piezas varchar(20)
DECLARE @Largo varchar(20)
DECLARE @Alto varchar(20)
DECLARE @Ubicacion varchar(20)

Select @PIezas = SubString(@Cadena, 0, CharIndex(';', @Cadena))
Select @Cadena  = SubString(@Cadena, CharIndex(';', @Cadena)+1,len(@Cadena))
Select @Largo = SubString(@Cadena, 0, CharIndex(';', @Cadena))
Select @Cadena  = SubString(@Cadena, CharIndex(';', @Cadena)+1,len(@Cadena))
Select @Alto = SubString(@Cadena, 0, CharIndex(';', @Cadena))
Select @Ubicacion = SubString(@Cadena, CharIndex(';', @Cadena)+1,len(@Cadena))

RETURN CAST(@Piezas As INTEGER)
END

Que funciona bien y puedo aplicar para los demás caso.

Pero si trato de hacer una funcion global para no tener que repetir todo el código para cada campo, me sale:

Cita:
Msg 102, Level 15, State 31, Procedure SepararAux02, Line 27
Incorrect syntax near 'BEGIN'.
Código SQL [-]
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go

ALTER FUNCTION [dbo].[SepararAux02](@Cadena varchar(30))

RETURNS TABLE
AS
BEGIN
DECLARE @Piezas varchar(20)
DECLARE @Largo varchar(20)
DECLARE @Alto varchar(20)
DECLARE @Ubicacion varchar(20)

Select @PIezas = SubString(@Cadena, 0, CharIndex(';', @Cadena))
Select @Cadena  = SubString(@Cadena, CharIndex(';', @Cadena)+1,len(@Cadena))
Select @Largo = SubString(@Cadena, 0, CharIndex(';', @Cadena))
Select @Cadena  = SubString(@Cadena, CharIndex(';', @Cadena)+1,len(@Cadena))
Select @Alto = SubString(@Cadena, 0, CharIndex(';', @Cadena))
Select @Ubicacion = SubString(@Cadena, CharIndex(';', @Cadena)+1,len(@Cadena))

RETURN
Select cast(@Piezas as integer) as Piezas, 
       cast(@Largo as numeric(9,4)) as Largo ,
     cast(@Alto as numeric(9,4)) as Alto, 
       @Ubicacion as Ubicacion 
END
__________________
Sitrico
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
Como puedo crear funciones? THACKER Varios 2 27-09-2008 20:51:22
Como Crear Base De Datos Con Sql Server flor MySQL 1 09-02-2008 20:42:59
Error al crear usuarios en Win2003 Server Onti Redes 2 27-07-2007 15:17:10
Crear tabla en una BD en Server A desde consulta en tabla B en server B joaquinalberto MySQL 1 18-05-2007 10:39:27
Indices que dependan de funciones almacenadas mercedesrc Oracle 3 01-10-2003 12:24:29


La franja horaria es GMT +2. Ahora son las 09:00:26.


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