FabianoSouza 5 Denunciar post Postado Junho 23, 2018 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
onedev 2 Denunciar post Postado Junho 23, 2018 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á... Compartilhar este post Link para o post Compartilhar em outros sites
FabianoSouza 5 Denunciar post Postado Julho 6, 2018 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
onedev 2 Denunciar post Postado Julho 7, 2018 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