** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Otros de Microsoft: Windows y Office > Otros Productos Microsoft
  Mensajes nuevos Mensajes nuevos RSS - Store Procedure
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoStore Procedure

 Responder Responder
Autor
Mensaje Invertir el orden de clasificación
cabraloca Ver desplegable
Nuevo
Nuevo


Unido: 04/Agosto/2014
Localización: españa
Estado: Sin conexión
Puntos: 32
Enlace directo a este mensaje Tema: Store Procedure
    Enviado: 25/Septiembre/2014 a las 09:13
resuelto, en vez de devolvr un return 0, retorno un select 0.
Gracias, un saludo
Arriba
guarracuco Ver desplegable
Moderador
Moderador
Avatar

Unido: 24/Abril/2004
Localización: EEUU
Estado: Sin conexión
Puntos: 2985
Enlace directo a este mensaje Enviado: 24/Septiembre/2014 a las 14:55
Si no vas a recibir registros como respuesta, no vale la pena declarar, cargar un recordset.

Debes usar la instrucción: cmd.Execute Options:=adExecuteNoRecords
para que no devuelva registros

Es mejor obtener la respuesta por medio de un parámetro de tipo output.

También veo errores como [dataform] en lugar de [datafrom] que asumo es el nombre correcto de la columna.
En resumen, el tipo de parámetro input es para enviar valores al procedimiento; el tipo de parámetro output es para obtener respuesta del procedimiento.

Pienso que debes comenzar por un procedimiento mas sencillo e ir aumentando la complejidad.
Encontré este ejemplo que se aproxima al vuestro:
http://bytes.com/topic/access/answers/205120-get-stored-procedure-output-value-back-vba
https://tucondominioaldia.net
Arriba
cabraloca Ver desplegable
Nuevo
Nuevo


Unido: 04/Agosto/2014
Localización: españa
Estado: Sin conexión
Puntos: 32
Enlace directo a este mensaje Enviado: 24/Septiembre/2014 a las 13:21
Pues ni idea la verdad es que estoy un poco verde, voy a probar
Arriba
guarracuco Ver desplegable
Moderador
Moderador
Avatar

Unido: 24/Abril/2004
Localización: EEUU
Estado: Sin conexión
Puntos: 2985
Enlace directo a este mensaje Enviado: 24/Septiembre/2014 a las 13:00
if not rst.eof then
valor=rst(0)
end if

no te falta agregar los parámetros?(append)


Editado por guarracuco - 24/Septiembre/2014 a las 13:05
https://tucondominioaldia.net
Arriba
cabraloca Ver desplegable
Nuevo
Nuevo


Unido: 04/Agosto/2014
Localización: españa
Estado: Sin conexión
Puntos: 32
Enlace directo a este mensaje Enviado: 24/Septiembre/2014 a las 10:58
Hola he hecho un procedure en sql server qe me tiene que devolver 0 o 1 y quiero recoger este resultado.
Os pego lo que tengo y me decís como puedo hacerlo.

Store Procedure: 

USE [HRTDB]
GO
/****** Object:  StoredProcedure [dbo].[Val_SolapamientoFechas]    Script Date: 24/09/2014 10:20:00 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc  [dbo].[Val_SolapamientoFechas]
@dateFor as  varchar(20), 
@dateTo as  varchar(20),
@idEmp as  varchar(20),
@tbl as varchar(20)
as
-- exec dbo.Val_SolapamientoFechas 1,2589,2014,'Employee_WalkingDeads'
declare @sql as varchar(500)
declare @tb as table (Num int)
DECLARE @result int 
--begin try
set @sql= 
'insert into @tb select =count(*)
from [dbo].['+ @tbl +'] 
WHERE Emp_Id='+ @idEmp +'
and( '+''''+ @dateFor+'''' +' BETWEEN [DateForm] AND [DateTo]
or '+''''+ @dateTo+'''' +' BETWEEN [DateForm] AND [DateTo]
or ( '+''''+ @dateFor +''''+'  > [DateForm] and  '+''''+ @dateTo +''''+'  <[DateTo])
or ( '+''''+ @dateFor +''''+'  < [DateForm] and  '+''''+ @dateTo +''''+'  >[DateTo]))'
select @result=num from @tb
if (@result) > 0 
set @result=1 -- hay filas, 
else --1=Error, 0=ok
set @result=0 -- no hya filas
GO


Funcion:

Public Function validaSolapamientoFechas(DateFrom As String, DateTo As String, idEmp As Integer, tbl As String) As Boolean
Dim str1 As String
Dim cnn1 As ADODB.Connection
Set cnn1 = GetNewConnection
Dim valReturn As String

DateFrom = convertirFechaMMDDAAAA(DateFrom)
DateTo = convertirFechaMMDDAAAA(DateTo)

   'On Error GoTo UserForm_Initialize_Err
    Dim cnn As New ADODB.Connection
    Dim rst As New ADODB.Recordset
    Dim sql As String
    Dim ADODBCmd As ADODB.Command
    Set cnn = GetNewConnection

    'Open recordset
    Set ADODBCmd = New ADODB.Command
    ADODBCmd.ActiveConnection = cnn
    ADODBCmd.CommandText = "Val_SolapamientoFechas"
    ADODBCmd.CommandType = adCmdStoredProc
    ADODBCmd.Parameters.Refresh
    ADODBCmd.Parameters(1).Value = DateFrom
    ADODBCmd.Parameters(2).Value = DateTo
    ADODBCmd.Parameters(3).Value = idEmp
    ADODBCmd.Parameters(4).Value = tbl

    Set rst = ADODBCmd.Execute()
    
    'Aqui es donde me gustaria qe me recogiera el resultado como Integer o String me da igual


Un saludo y gracias de antemano!

Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable