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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 31-10-2006
sinalocarlos sinalocarlos is offline
Miembro
 
Registrado: sep 2006
Posts: 152
Poder: 20
sinalocarlos Va por buen camino
buen dia carlos

provaste ya con funciones en ves de procedimientos

seria algo asi como:

Código SQL [-]
CREATE FUNCTION fn_valida
  (id_empleado int, 
   fecha_i datetime,
  fecha_f  datetime)
RETURNS int
AS
BEGIN
  declare @resultado int
  
  --AQUI VALIDAS
  
  RETURN @resultado

END


Insert into Vigentes(id_empleado, vigente)
  select (id_empleado, fn_valida (id_empleado, fecha_i, fecha_f)
  from empleados.

Espero te sirva la idea
Responder Con Cita
  #2  
Antiguo 31-10-2006
mendozasoftware mendozasoftware is offline
Registrado
 
Registrado: abr 2005
Posts: 6
Poder: 0
mendozasoftware Va por buen camino
Sigo Teniendo Problemas Con La Inserccion:

Este Es La Funcion:



Create Function Fue_vigente_2(
@id_trabajad Int,
@fi Datetime,
@ff Datetime)
Returns Varchar(2)
As
Begin
Declare @movimiento Varchar(1)
Declare @fecha_mov Datetime
Declare @fue Varchar(2)

Set @movimiento='z'

Select @movimiento=mov_tipo, @fecha_mov=fecha
From V_trabmovi Where Id_trabajad=@id_trabajad
And Fecha<=@ff And Id_trabmovi=(select Max(id_trabmovi) From Trabmovi
Where Id_trabajad=@id_trabajad)

If (@movimiento<>'z')
Begin
If (@movimiento='b' And @fecha_mov>=@fi)
Set @fue='si' Else
If (@movimiento='b' And (@fecha_mov<@ff Or @fecha_mov<@fi))
Set @fue='no' Else
Set @fue='si'
End Else
Set @fue='no'
Return @fue
End




Y Trate De Poner La Insercion Como Me Dijiste



Insert Into Trabvig(id_trabajad, Vigente)
Select (id_trabajad, Fue_vigente_2 (id_trabajad, '10/01/206','10/31/2006')
From Trabajad



Estoy Haciendo Algo Mal??





Saludos
Responder Con Cita
  #3  
Antiguo 31-10-2006
sinalocarlos sinalocarlos is offline
Miembro
 
Registrado: sep 2006
Posts: 152
Poder: 20
sinalocarlos Va por buen camino
nesecitaria saber el error que produce el SQL, a primera vista seria la fecha que le mandas en el segundo parametro de la funcion en el select del insert
'10/01/206' seria '10/01/2006' si puedes mandar el error generado seria mas facil
Responder Con Cita
  #4  
Antiguo 31-10-2006
mendozasoftware mendozasoftware is offline
Registrado
 
Registrado: abr 2005
Posts: 6
Poder: 0
mendozasoftware Va por buen camino
ESTA ES LA SENTENCIA

Insert Into Trabvig(id_trabajad, Vigente)
Select (id_trabajad, Fue_vigente_2 (id_trabajad, GETDATE,GETDATE))
From Trabajad

Y EL ERROR:::::
______________________________________

Server: Msg 170, Level 15, State 1, Line 2
Line 2: Incorrect syntax near ','.


TAMBIEN LO PONGO DE ESTA MANERA


Insert Into Trabvig(id_trabajad, Vigente)
Select id_trabajad, FUE_VIGENTE_2 (id_trabajad, GETDATE,GETDATE)
From Trabajad

Y ME MANDA EL ERROR
Server: Msg 195, Level 15, State 10, Line 2
'FUE_VIGENTE_2' is not a recognized function name.

LA FUNCION EXISTE !!!

Última edición por mendozasoftware fecha: 31-10-2006 a las 21:03:54.
Responder Con Cita
  #5  
Antiguo 31-10-2006
sinalocarlos sinalocarlos is offline
Miembro
 
Registrado: sep 2006
Posts: 152
Poder: 20
sinalocarlos Va por buen camino
ok entonces serian dos cosas:
  1. la funcion GETDATE se ejecuta con GETDATE()
  2. y aqui el error fue mio se me olvido comentar que tienes que expresar la funcion anteponiendo el dBowner

quedaria el insert asi:


Código SQL [-]

Insert Into Trabvig(id_trabajad, Vigente)
Select id_trabajad, dbo.FUE_VIGENTE_2 (id_trabajad, GETDATE(),GETDATE())
From Trabajad

pruebalo y veamos que pasa
Responder Con Cita
  #6  
Antiguo 31-10-2006
mendozasoftware mendozasoftware is offline
Registrado
 
Registrado: abr 2005
Posts: 6
Poder: 0
mendozasoftware Va por buen camino
Si Lo Probe Asi Y Funciono....
Deberia De Pasar Igual Con El Procedure O Sera Lo Ideal Usar La Funcion??
Responder Con Cita
  #7  
Antiguo 31-10-2006
sinalocarlos sinalocarlos is offline
Miembro
 
Registrado: sep 2006
Posts: 152
Poder: 20
sinalocarlos Va por buen camino
hasta donde yo se, lo cual es poco, no se puede incluir un procedimiento almacenado dentro de un select, creo yo que se deve a que un procedimiento regresa los valores por medio de variables OUTPUT, encuentro la similitud con el tratar de usar un procedimiento de Delphi dentro de un IF o dentro de la llamada a otro procedure.

me alegra, pues, que te haya sido de utilidad mi participacion
Responder Con Cita
Respuesta


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
Procedimiento Almacenado Devolver una Select granchop Firebird e Interbase 5 14-09-2006 09:57:03
procedimiento dentro de procedimiento chechu Varios 6 24-11-2005 23:34:48
SP dentro de Select buitrago_listas Firebird e Interbase 1 17-01-2005 13:43:04
for select....do en procedimiento almacenado lledesma SQL 1 23-04-2004 08:03:01
Select a procedimiento almacenado ACK Firebird e Interbase 12 19-07-2003 20:13:28


La franja horaria es GMT +2. Ahora son las 06:36:20.


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