![]() |
Llamada dinamica a Sub Hola, existe alguna manera en ASP de ejecutar una sub pero tener el nombre de esta sub dentro de un string?? O sea, algo como Código: Dim sub_llamada |
Respuesta: Llamada dinamica a Sub Juraría que no, pero... para que lo quieres? Es decir, si llamas a un procedimiento supuestamente sabes a cual quieres llamar. Pero vamos, me has dejado con la duda. |
Respuesta: Llamada dinamica a Sub Pues el motivo es el siguiente: Desde hace tiempo vengo programando mis rutinas de BD en procedimientos almacenados y tengo una clase que realiza llamadas a estos procedimientos de forma automatizada... ClaseBD.Llama(procedimiento_de_bd) Así, me da igual estar en una página de registro de nuevo usuario o de grabacion de un documento nuevo, simplemente ajusto los valores de las columnas ( ClaseBD.columna(0) = .... / ClaseBD.columna(N) = .... ) y llamo al procedure de BD correpondiente (ClaseBD.Llama(SQLRegistro_Usuario) o ClaseBD.Llama(SQLRegistro_Documento)) Ahora, me han pedido un proyecto con MySQL 4, que no soporta procedimientos de BD almacenados, así que tengo que rehacer la parte que estaba en BD y pasarla a ASP mezclado con SQL, si pudiera realizar llamadas dinámicas a procedimientos ASPpodría reaprovechar en parte la clase ClaseBD cambiando las llamadas a procedures SQL por subs de ASP, por ejemplo ASPRegistro_Documento o ASPRegistro_Usuario O sea, que en realidad no conozco el nombre del subn que quiero llamar sino que este depende y por eso pregunto si podría estar dentro de una variable |
Respuesta: Llamada dinamica a Sub en mi opinion ummmm si haces todos los sub correctos no habria problema por llamarlos siempre y cuando los dejes bien depurados |
Respuesta: Llamada dinamica a Sub Cita:
A ver, dices que tus SP los llamas con un método de la forma ClaseBD.Llama(procedimiento_de_bd), entonces si conoces el nombre del SP y por ende, de la función que llamarias ¿no es así? |
Respuesta: Llamada dinamica a Sub mmmmmhhhh no estoy seguro pero podrías tratar: call eval("procedimiento como string") Aunque me quedé intrigado con esta solción ¿Nos dejarías ver algo de código? Saludos |
Respuesta: Llamada dinamica a Sub Cita:
Probaré eso que dices u_goldman de Call Eval(...), a ver... u_goldman, ya que preguntas, te cuento: el código pienso que es demasiado extenso para ponerlo, te cuento un poco como está estructurada mi claseBD: :arriba: Código: Propiedades:Código: Para listar (query):Es decir, de forma dinámica, solo con el nombre el módulo de BD (usuario) y la acción que quiero realizar (Lista, Login, Inserta...) hago la llamada a un procedimiento de BD (con RecordSet.Open o Conex.execute).... ¿Por qué venía esta pregunta? Resulta que en las versiones anteriores a MySQL 5 no se soporta el uso de procedimientos de Base de Datos, por lo tanto tengo que reescribir mis módulos de BD (Usuario_Lista, Usuario_Inserta, etc...) y cambiarlos a ASP con SQL entremezaclado con el codigo SQL, asi, lo que antes era puro SQL Usuario_Lista ahora es una Function Usuario_lista de ASP, si pudiera hacer la llamada dinámica, por ejemplo con ese Call Eval("Usuario_Inserta") me bastaría con una pequeña modificación en claseBD y toda mi aplicación se adapta a esta nueva estructura, si no puedo hacer llamadas dinámicas, tengo que recorrer cada script (login.asp, usario.asp, etc...) y donde antes había una instancia a claseBD poner ahora la llamada que corresponda a Sub o Function de asp Espero que hayas encontrado la información útil, si os resulta útil os puedo ir poniendo por aquí la clase, como ya habéis hecho con el módulo de usuarios o el sitio multilenguaje en XML, aunque supongo que cada uno tendrá su propia manera de estructurar las llamadas a BD Saludos :arriba: |
Respuesta: Llamada dinamica a Sub Cita:
Código: Tipo de error: |
Respuesta: Llamada dinamica a Sub no estoy seguro, pero a lo mejor Testeando :pensando: Cita:
|
Respuesta: Llamada dinamica a Sub Ya entendí un poco mejor...entonces esa clase solo sirve para llamar al procedimiento correcto dependiendo de una propiedad de la misma, y el problema es que necesitas hacer algo particular (llamar a otros procedimientos que no llaman SP) desde algo general. Pues si lo estoy viendo bien, realmente no le encuentro mucha complicación, hazte una variable global que le diga a tu aplicación si usa SP o no, y en la clase que llamas a tus procedimientos, evalúas esa variable, si es verdadera llamas al SP, si no, llamas al código, siguiendo la lógica de tu aplicación, los nombres deberían ser similares. Saludos |
Respuesta: Llamada dinamica a Sub Cita:
Estoy mirando eso que me dijo Shiryu_Libra, nunca vi eso de ASPTest.... Código: 'tu clase |
| La zona horaria es GMT -6. Ahora son las 02:15. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.