Hola llanesluna, estuve haciendo unas pruebas que te muestro para que lo adaptes a tus necesidades. Tengo dos archivos: uno que es el que hace el trabajo y el otro que usé como fuente de datos (en tu caso usás una BD para recuperar la información):
Código:
<%
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
Set leerArchivo = FSO.OpenTextFile(Server.MapPath("fuente.asp"), 1, true)
codigo = leerArchivo.ReadAll()
leerArchivo.close
Set leerArchivo = nothing
Set FSO = Nothing
response.write codigo
response.write "<br>"
execute(codigo)
%>
fuente.asp
Código:
response.write "Viva Cuba!"
response.write "hola"
a=1
if a=0 then
response.write "a vale 0"
else
response.write "a no vale 0"
end if
Esto funciona. La clave, como te habrás dado cuenta, está en hacer uso de la función Execute() para ejecutar "el código" que le llegue como string.
Ahora un par de consideraciones. Según el ejemplo que mostrás en el primer mensaje...
... vas a tener dos problemas.
1- Deberás eliminar las etiquetas de apertura y cierre de ASP. Esto es fácil... un replace de "
<%" y "
%>" por nada y listo.
2- el signo "
=" usado como response.write no lo reconoce como tal la función Execute(). Pero esto no es tan fácil como hacer un replace de "=" por "response.write" porque el signo "=" también puede ser usado para una asignación o una comparación (de ahí que en el ejemplo coloqué
a=1 y
if a=0 then)
Ahora te lo dejo a vos ;)
Un saludo