Ir para conteúdo
FabianoSouza

Recordset e command numa function

Recommended Posts

Pessoal, meu sistema tem muitos grids (construidos a partir de selects). Preciso criar uma function para evitar retrabalho.

Atualmente já tenho uma estrutura que carrega os dados de uma procedure, coloca dentro do recordset e roda um código de paginação.

 

O que preciso agora é "desmembrar" isso, criando uma function para que a mesma seja reutilizada.

Aí eu passaria apenas parâmetros e a function serviria para todo meu sistema :-)

 

Atualmente a coisa está assim (isso é só um trecho, que lê a procedure no banco e passa os registros para um recordset).

A function precisa ser capaz de receber parâmetros (que podem variar em quantidade e tipo de dado) e seus respectivos valores,

rodar um command e depois rodar um recordset com os dados retornados do command.

 

Como crio esse Frankenstein?

  Dim cmd1, rs
  set cmd1 = Server.CreateObject("ADODB.Command")
  Set rs = Server.CreateObject("ADODB.Recordset") 'recordset para paginação
  cmd1.ActiveConnection = MM_conexao_STRING
  cmd1.CommandText = "dbo.minha_Procedure"
  cmd1.Parameters.Append cmd1.CreateParameter("@RETURN_VALUE", 3, 4)
  cmd1.Parameters.Append cmd1.CreateParameter("@cdu", 3, 1, 10, xyz)
  cmd1.Parameters.Append cmd1.CreateParameter("@id", 3, 1, 10, xpto)
    
  cmd1.CommandType = 4
  cmd1.CommandTimeout = 0
  cmd1.Prepared = true
  cmd1.Execute
  
  Set rs.Source = cmd1
  rs.CursorLocation = 3 'adUseClient 
  rs.CursorType = 3 'adOpenStatic
  rs.LockType = 3 'adLockBatchOptimistic
  rs.Open
  rs.PageSize  = 1

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  Function Frankenstein(parametro_quantidade,parametro_tipo)

    If parametro_tipo = x Then

      Frankenstein = parametro_tipo * parametro_quantidade

    Else If parametro_tipo = y Then

      Frankenstein = parametro_tipo * parametro_quantidade * 200

    End If : End If
  End Function

Vai brincando com isso que você chega lá...

  • Gostei 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 23/06/2018 at 20:41, onedev disse:

  Function Frankenstein(parametro_quantidade,parametro_tipo)

    If parametro_tipo = x Then

      Frankenstein = parametro_tipo * parametro_quantidade

    Else If parametro_tipo = y Then

      Frankenstein = parametro_tipo * parametro_quantidade * 200

    End If : End If
  End Function

Vai brincando com isso que você chega lá...

 

Cara, pode me ajudar a entender o objetivo dessa function?

Vi que faz umas multiplicações mas não entendi o resultado final.

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem uma condição na função, se o "parametro_tipo" for = x a função vai fazer uma ação se for = y fará outra. Você monta da forma que lhe atender melhor, é só passar os valores na função.

Por exemplo    <%Call Frankenstein(500,x)%> daria o resultado de 500x

Se for <%Call Frankenstein(500,y)%> daria o resultado de 100000y

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.