Foros del Web » Programando para Internet » ASP Clásico »

Trabajo con colecciones ASP

Estas en el tema de Trabajo con colecciones ASP en el foro de ASP Clásico en Foros del Web. Hola Estoy desarrollando una pagina que debe de estar en varios idiomas, los mensajes estaran guardados en una base de datos. Lo que quiero es ...
  #1 (permalink)  
Antiguo 24/09/2003, 15:55
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 22 años
Puntos: 25
Trabajo con colecciones ASP

Hola

Estoy desarrollando una pagina que debe de estar en varios idiomas, los mensajes estaran guardados en una base de datos.

Lo que quiero es que a la hora que recupere el recordset de mensajes pueda accesarlos por nombre, no por identificador.

Algo como:
<%= mensajes("msg_bienvenida") %>
en lugar de:
<%= mensajes(1) %>

Creo que lo mas conveniente seria crear una coleccion (o no se como se llamen en este caso), pero no encuentro por ningun lado como hacerlo.

¿Tienen idea de como hacerlo o que me recomiendan?
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #2 (permalink)  
Antiguo 24/09/2003, 19:24
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 23 años, 5 meses
Puntos: 0
he trabajado con colecciones pero pasando desde componentes a paginas ASP usando for each...
pero la verdad no entiendo todavia lo que quieres hacer..esta un poco difusa tu explicacion...

podrias aclararla un pokito?
  #3 (permalink)  
Antiguo 25/09/2003, 09:44
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 22 años
Puntos: 25
OK, va mejor explicado:

1.
Tengo una tabla con todos los mensajes en todos los idiomas de todas las paginas, un registro por mensaje.

2.
Mediante un filtro obtengo un recordset con los mensajes en el idioma deseado de la pagina en cuestion.

3.
La estructura de el recorset obtenido es de la forma:
ID--------------MENSAJE
encabezado-bienvenido a mi site
mensaje1----tienes estos datos:
mensaje2----y estos otros tambien
pie-------------eso es todo para esta pagina, bye.

Lo que quiero es que una vez que tenga el recordset pueda accesar a cada mensaje por su ID, en lugar de vaciar el recordset en un array y tener que accesar mediante numeros.

Quiero algo como esto (la manera en que se accesan las variables de sesion, aplicacion, datos en recordsets, etc.):

msgs("encabezado")
msgs("mensaje1")
msgs("mensaje2")
.....


y no quiero hacerlo asi:

msgs(1,0)
msgs(1,1)
msgs(1,2)
.....

Pero para eso se me ocurre que se hace con las colecciones (especie de "tipo enumerado" o algo asi) El problema es que no se como crearlas.

¿que otra tecnica se les ocurre? No los puedo meter como un campo por mensaje y todos los mensajes en un solo registro para cada pagina, por que cada pagina es diferente y tiene diferente cantidad y tipo de mensajes.

Cualquier cosa que se me haya vuelto a pasar estoy aqui para hacer mas clara mi pregunta.
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche

Última edición por Mithrandir; 25/09/2003 a las 09:48
  #4 (permalink)  
Antiguo 26/09/2003, 08:02
 
Fecha de Ingreso: mayo-2002
Mensajes: 66
Antigüedad: 23 años
Puntos: 0
Hola Mithrandir:

Tal y como lo estás enfocando vas muy bien. Sólo te faltaría crear una colección (objeto dictionary) y llenarlo con los mensajes:

Código:
<%
[...]
'Haces todos tus cálculos y obtienes los datos (p.ej: en 
'el recordset ``rs")
[...]

' Creas el dictionary
set mensajes = server.createObject("Scripting.Dictionary")


' Y lo llenas...
dim tipoMensaje, cuerpoMensaje
while not rs.eof
   id= rs("id").value
   mensaje = rs("mensaje").value
   mensajes.add id, mensaje
   rs.moveNext()
wend
[...]
' Haces el resto de operaciones y cálculos que tengas que hacer, cierras objetos y ya está
[...]
%>
Fíjate en que tendrás que usar nombres de campos que se adecúen a tu base de datos (me refiero a ``id" y a ``mensaje").

Y poco más... :)
__________________
Un saludo,

Alberto
  #5 (permalink)  
Antiguo 26/09/2003, 09:32
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 22 años
Puntos: 25
Muchas gracias alcarji.

No daba con lo de:
set mensajes = server.createObject("Scripting.Dictionary")
mensajes.add id, mensaje


¿Saben donde puedo encontrar alguna lista/descripciones sobre los objetos para Server.CreateObject()?

La he buscado, pero por el MSDN no la encuentro.
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #6 (permalink)  
Antiguo 29/09/2003, 04:24
 
Fecha de Ingreso: mayo-2002
Mensajes: 66
Antigüedad: 23 años
Puntos: 0
Hola mithrandir:

Lo tienes mucho más cerca de lo que te imaginas ;)

Busca en tu PC un archivo llamado ``VBSCRIP5.CHM" y ahí tienes todas sus propiedades y métodos. Si aún así no lo encontrases, tira de google y lo encontrarás rápidamente.
__________________
Un saludo,

Alberto
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:27.