|    
			
				11/02/2009, 22:36
			
			
			  | 
  |   |  |  |  Fecha de Ingreso: noviembre-2003 Ubicación: Pvcia. de Bs. A.s 
						Mensajes: 20
					 Antigüedad: 21 años, 11 meses Puntos: 0 |  | 
  |  Recuperar registros al azar con BD  
  Hola de nuevo yo! hace 3 dias que lucho con esto y no hay caso, voy a apelar a sus conocimientos que son mas que los mios sin duda...estoy haciendo un sistemita de ofertas en el costado de la pagina de un amigo que no deben repetirse o sea tengo 3 recuadritos que cada uno muestra imagen y texto de la oferta distinto del otro, les muestro lo que hice para elprimero:
 <%
 set rs = CreateObject("ADODB.Recordset")
 set rs5 = CreateObject("ADODB.Recordset")
 Set Conn = Server.CreateObject("ADODB.Connection")
 Conn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("productos.mdb"))
 
 Dim id_var
 minimo = 1
 ' cantidad total de la tabla
 maximo = "select count(id) as cant_total from Productos "
 
 rs.Open maximo, conn
 maximo1 = rs("cant_total")
 encontro = 0
 
 'Genero un nro. aleatorio para no cablearlo y que muestre diferentes productos cada vez que hago F5.
 Randomize
 id_var = Int(((maximo1-minimo+1) * Rnd) + minimo)
 
 do while encontro = 0
 'busco el ID del producto = al nro. que me genero el random.
 sqltxt="SELECT id as id_aux FROM Productos Where id = "&id_var&" "
 rs5.Open sqltxt,conn
 id = rs5("id_aux")
 
 'Este es una marca que me dice si es oferta(Si) o no es oferta(No).
 'Me fijo lo que tiene de acuerdo al ID encontrado arriba.
 flag = "select flag_oferta as flag from productos where id = "&id&" "
 rs5.Open flag, conn
 flag_of = rs5("flag")
 
 'Si no es oferta le digo que me genere otro nro. y que lea el siguiente.
 if flag_of ="No" then
 Randomize
 id_var = Int(((maximo1-minimo+1) * Rnd) + minimo)
 Rs5.movenext
 else
 'de lo contrario quiere decir que es oferta y deberia mostrarme el producto.
 rs.close
 rs.CursorType = adOpenKeyset
 variable=Request("tabla")
 
 sqltxt="SELECT * FROM Productos Where id = "&id&" and flag_oferta = 'Si' "
 rs.Open sqltxt,conn
 ' Leo las ofertas y Luego recupero mas abajo los registros con rs.
 end if
 
 
 loop
 
 **El problema es que me tira el siguiente error
 
 ADODB.Recordset error '800a0e79'
 
 La operación no está permitida si el objeto está abierto.
 
 /ofertas/principal.asp, línea 484
 >es esta linea 484: rs5.Open flag, conn
 
 Se que no deberia ser muy dificil pero es medio enroscado o me enrosque yo, puede traer la marca en S o en N . El otro tema importante es que si se borra un registro de la tabla osea desaparece el ID al mostrar muestra el recuadro vacio, :(  ;(
 
 Si alguien vio alguna vez algo parecido bienvenido será !
 
 Saludos y gracias d e antemano.
     |