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

arreglos en asp

Estas en el tema de arreglos en asp en el foro de ASP Clásico en Foros del Web. Estimados, necesito vuestra ayuda. no soy muy bueno con arreglos. y me urge crearlos, me explico. genero una consulta a ala abase de datos, quiero ...
  #1 (permalink)  
Antiguo 14/10/2010, 15:26
 
Fecha de Ingreso: julio-2007
Mensajes: 58
Antigüedad: 16 años, 9 meses
Puntos: 0
arreglos en asp

Estimados, necesito vuestra ayuda.

no soy muy bueno con arreglos. y me urge crearlos, me explico.

genero una consulta a ala abase de datos, quiero que el resultado sea alojado en un arreglo y no se como.

alguien que pueda colaborar.

no me sirve getrows.

desde ya gracias,.
  #2 (permalink)  
Antiguo 18/10/2010, 09:02
 
Fecha de Ingreso: julio-2007
Mensajes: 58
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: arreglos en asp

despues de relajarme cree los arreglos....

tengo un arreglo a y un arreglo b

en arreglo a (manejo tipos de puerta)
en arreglo b (personas que pasaron por dicha puerta)

lo que necesito es contar cuantas personas pasaron por cada puerta.

ejemplo:

puerta1 = 100
puerta2 = 150, etc

alguien que me puede echar una amano.

desde ya gracias.
  #3 (permalink)  
Antiguo 18/10/2010, 12:38
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: arreglos en asp

supongo que ambos arreglos tienen el mismo número de elementos, así que solo has de usar un ciclo for para recorrer e imprimir los valores de ambas matrices
  #4 (permalink)  
Antiguo 19/10/2010, 07:42
Avatar de verinchi  
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires
Mensajes: 647
Antigüedad: 19 años, 7 meses
Puntos: 2
Respuesta: arreglos en asp

Cita:
Iniciado por junnior Ver Mensaje
despues de relajarme cree los arreglos....

tengo un arreglo a y un arreglo b

en arreglo a (manejo tipos de puerta)
en arreglo b (personas que pasaron por dicha puerta)

lo que necesito es contar cuantas personas pasaron por cada puerta.

ejemplo:

puerta1 = 100
puerta2 = 150, etc

alguien que me puede echar una amano.

desde ya gracias.

Hola. Como para aclarar un poco el panorama...
si en el arreglo a tenés las puertas, y en el b las personas que pasaron por cada uno, supongo que en el b figura el nro de puerta por la que pasó, o el identificador cualquiera que sea de esa puerta.
Siendo así, lo optimo sería que tu conjunto de datos para las personas que pasaron por determinada puerta esté ordenado por puerta (espero que se entienda) entonces simplemente contarías hasta que la puerta cambie.

De no ser así, deberías contar con un acumulador por cada puerta.
Primero deberías recorrer el arreglo que tiene las puertas y crear un acumulador para cada una de ellas.
Luego, a medida que recorres el arreglo de las personas, acumulas en el "acumulador" correspondiente (parece un trabalenguas esto, perdón jaja) y al final tendrás que simplemente imprimir los acumuladores que fuiste cargando

Si hay algo que no entiendas... lo vemos.
__________________
Why can't we not be sober?
www.partitorium.com.ar
  #5 (permalink)  
Antiguo 19/10/2010, 07:52
 
Fecha de Ingreso: julio-2007
Mensajes: 58
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: arreglos en asp

gracias pro ayudarme IsaBelM, verinchi.
  #6 (permalink)  
Antiguo 19/10/2010, 07:56
 
Fecha de Ingreso: julio-2007
Mensajes: 58
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: arreglos en asp

exactamenete lo que dices.. es verdad.

pero te explico

en el arreglo a obtengo, id_puerta, id_persona

en el arreglo b obtengo id_persona, id_tipo.

entonces el enlace seria por id_persona.


pero ahi me pierdo, no se como hacerlo.

ya que a lo que me dices, que el acumulador es quien ira acumulando a las personas que ingresaron por dicha puerta, me parece buena idea pero tienes algun ejemplo, porque para ser sincero nunca he trabajado con arreglos.
  #7 (permalink)  
Antiguo 19/10/2010, 07:56
Avatar de verinchi  
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires
Mensajes: 647
Antigüedad: 19 años, 7 meses
Puntos: 2
Respuesta: arreglos en asp

Cita:
Iniciado por junnior Ver Mensaje
gracias pro ayudarme IsaBelM, verinchi.
:) no problem.
Pudiste solucionar tu problema?
__________________
Why can't we not be sober?
www.partitorium.com.ar
  #8 (permalink)  
Antiguo 19/10/2010, 07:58
 
Fecha de Ingreso: julio-2007
Mensajes: 58
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: arreglos en asp

esto es lo que tengo

set rsx = Server.CreateObject("ADODB.Recordset")

Sql2 = " SELECT person1euid, object1euid"
Sql2 = Sql2 & " from pub.journal "
Sql2 = Sql2 & " where "
Sql2 = Sql2 & " person1euid <>'' "
Sql2 = Sql2 & " and object1euid IN(3423, 3424, 3874, 3875, 4922, 4923, 5346, 5347) "

rsx.Open Sql2, oConn, 1, 1

dim puerta ()
Redim puerta(10)

if not rsx.eof then
Do While not rsx.EOF
puerta(0)= rsx("person1euid")
puerta(1)= rsx("object1euid")

rsx.MoveNext
'xx=rsx.RecordCount

LOOP



else
response.write "no encontro datos"
end if
  #9 (permalink)  
Antiguo 19/10/2010, 08:03
 
Fecha de Ingreso: julio-2007
Mensajes: 58
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: arreglos en asp

Cita:
Iniciado por verinchi Ver Mensaje
:) no problem.
Pudiste solucionar tu problema?
es posible que me puedas ayudar....
  #10 (permalink)  
Antiguo 19/10/2010, 09:01
Avatar de verinchi  
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires
Mensajes: 647
Antigüedad: 19 años, 7 meses
Puntos: 2
Respuesta: arreglos en asp

Por lo que pude ver, las puertas que deseas controlar ya las tenés de antemano.

Cita:
set rsx = Server.CreateObject("ADODB.Recordset")

Sql2 = " SELECT person1euid, object1euid"
Sql2 = Sql2 & " from pub.journal "
Sql2 = Sql2 & " where "
Sql2 = Sql2 & " person1euid <>'' "
Sql2 = Sql2 & " and object1euid IN(3423, 3424, 3874, 3875, 4922, 4923, 5346, 5347) "

rsx.Open Sql2, oConn, 1, 1

dim puerta ()
Redim puerta(10)

if not rsx.eof then
Do While not rsx.EOF
puerta(0)= rsx("person1euid")
puerta(1)= rsx("object1euid")

rsx.MoveNext
'xx=rsx.RecordCount

LOOP
Con lo que no necesitas ponerlo en un arreglo para trabajar. Pero supongamos que no lo sabes y que tenés en puerta, los diferentes nros de puerta, como ser: puerta(0)=3423
puerta(1)=3424
y así sucesivamente.

Habíamos dicho también que el segundo arreglo (personas) pero por lo que veo no va a ser necesario siquiera declararlo.

entonces trabajamos así:
supongo que no se el nro de puertas que voy a usar, entonces declaro acumuladores, uno para cada puerta

Código:
for i=0 to ubound(puertas)
  dim varPuerta&puerta(i) 'esto te quedaría por ejemplo: varPuerta3423 como variable.
next
luego, recorremos el resultado para acumular
Código:
while not rsx.eof
select case rsx("object1euid")
 for i=0 to ubound(puertas)
   case puertas(i): varPuerta&puerta(i)=varPuerta&puerta(i)+1 'cuenta una persona que pasó por esa puerta
  next
 end select
'no ponemos case else, pero podrías poner alguno para caso de error.
rsx.movenext()
wend
Con esto estarías sumando una a una, cada persona que pasa por una puerta.

para mostrarlo luego, simplemente volvés a recorrer el vector de puertas, pero mostrando en cada caso el acumulador correspondiente así:

Código:
for i=0 to ubound(puertas)
  response.write(puerta"&puertas(i))&" = "&varPuerta&puertas(i)
next
De todas maneras, por lo que veo las puertas ya sabes cuales son, con lo que no necesitas trabajar con arreglos, sino simplemente declarar un acumulador para cada puerta y recorrer haciendo un select case del resultado de tu consulta. Si rsx(puerta)=la puerta que buscas, entonces acumulas en la variable que declaraste para ese acumulador. Siempre contando de a un elemento, iniciando todos en cero.

Además, traes la información de la persona y la puerta cuando la persona no te importa, porque solo querés contar cuatos pasaron por cada puerta.

Otra más fácil es, cargar las puetas en un arreglo fijo "puertas" y luego:

declaras el objeto recordset, con su conexión.
Antes de abrirlo haces un loop en puertas de la siguiente forma:

for i=0 to ubound(puertas)
rsx.source= "select count * as tot from pub.journal where person1euid <>'' and object1euid ="&puertas(i)
rsx.open()
personasp(i)=rsx("tot")
rsx.close()
next

Con esto estarías usando un objeto para contar las personas por puertas, un arreglo fijo conlas puertas y un arreglo de las mismas dimensiones con las personas
entonces, por cada puerta se ejecuta la consulta count y el resultado se almacena en personasp correspondiente.


Espero que alguna de estas te sirva, por como pusiste el caso me parece que la ultima es la mas viable.

No te preocupes por usar el mismo recordset varias veces ya que dentro del loop lo abrís, lo usas y lo volvés a cerrar, así que no fallará.

Saludos.
__________________
Why can't we not be sober?
www.partitorium.com.ar

Etiquetas: arreglos, asp
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 03:34.