Disconected Recordset & Random Selection

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Andie

    Disconected Recordset & Random Selection

    Hello All,

    How would I go about using a disconnect recordset and select (x) records
    from it, x being the number of records to be selected.

    Many thanks in advance.

    --
    Andie

    Remove TRASH from email address to reply


  • Andie

    #2
    Re: Disconected Recordset & Random Selection

    Basically within my database, I have a table called products, and I was told
    about using a client side or "disconnect ed recordset" to display records on
    the asp page I am using, I currently use an array to store all the product
    information to be displayed, and then randomly display 6 products on the
    screen.

    How would I used a client side recordset to display 6 different records each
    time?

    Soeey but you will have to bear with me as I am only just getting to grips
    with ASP programming..

    Many thanks in advance.

    --
    Andie

    Remove TRASH from email address to reply
    "Tim Williams" <saxifrax@pacbe ll*dot*net> wrote in message
    news:%23XfJwb0Q DHA.1564@TK2MSF TNGP12.phx.gbl. ..[color=blue]
    > You cannot "select..." from a standalone recordset, but you can[/color]
    sort/filter[color=blue]
    > it.
    > You don't say which records you want to retrieve, so difficult to give any
    > more details than that.
    >
    > tim
    >
    >
    > "Andie" <andie@mansunTR ASH.freeserve.c o.uk> wrote in message
    > news:Q9INa.4581 7$9C6.2267430@w ards.force9.net ...[color=green]
    > > Hello All,
    > >
    > > How would I go about using a disconnect recordset and select (x) records
    > > from it, x being the number of records to be selected.
    > >
    > > Many thanks in advance.
    > >
    > > --
    > > Andie
    > >
    > > Remove TRASH from email address to reply
    > >
    > >[/color]
    >
    >[/color]


    Comment

    • Tim Williams

      #3
      Re: Disconected Recordset &amp; Random Selection

      You don't need a disconnected recordset just to display records - they are
      only really useful if you want to persist the data between calls/pages.

      Selecting "random" records from a database is not so straightforward : try
      this or a variant of it -


      Exactly how you do it may depend on how many records you have in your DB
      table...
      A search on Google for "asp random records" should get you some ideas.


      tim

      "Andie" <andie@mansunTR ASH.freeserve.c o.uk> wrote in message
      news:h6jOa.4613 8$9C6.2315936@w ards.force9.net ...[color=blue]
      > Basically within my database, I have a table called products, and I was[/color]
      told[color=blue]
      > about using a client side or "disconnect ed recordset" to display records[/color]
      on[color=blue]
      > the asp page I am using, I currently use an array to store all the product
      > information to be displayed, and then randomly display 6 products on the
      > screen.
      >
      > How would I used a client side recordset to display 6 different records[/color]
      each[color=blue]
      > time?
      >
      > Soeey but you will have to bear with me as I am only just getting to grips
      > with ASP programming..
      >
      > Many thanks in advance.
      >
      > --
      > Andie
      >
      > Remove TRASH from email address to reply
      > "Tim Williams" <saxifrax@pacbe ll*dot*net> wrote in message
      > news:%23XfJwb0Q DHA.1564@TK2MSF TNGP12.phx.gbl. ..[color=green]
      > > You cannot "select..." from a standalone recordset, but you can[/color]
      > sort/filter[color=green]
      > > it.
      > > You don't say which records you want to retrieve, so difficult to give[/color][/color]
      any[color=blue][color=green]
      > > more details than that.
      > >
      > > tim
      > >
      > >
      > > "Andie" <andie@mansunTR ASH.freeserve.c o.uk> wrote in message
      > > news:Q9INa.4581 7$9C6.2267430@w ards.force9.net ...[color=darkred]
      > > > Hello All,
      > > >
      > > > How would I go about using a disconnect recordset and select (x)[/color][/color][/color]
      records[color=blue][color=green][color=darkred]
      > > > from it, x being the number of records to be selected.
      > > >
      > > > Many thanks in advance.
      > > >
      > > > --
      > > > Andie
      > > >
      > > > Remove TRASH from email address to reply
      > > >
      > > >[/color]
      > >
      > >[/color]
      >
      >[/color]


      Comment

      • Bob Barrows

        #4
        Re: Disconected Recordset &amp; Random Selection

        Depending on your backend database, it will almost always be more efficient
        to do this via your original query (see Tim's link).

        I do not believe that using a disconnected recordset will help here. For one
        thing, you cannot add a field to a recordset that has been opened on a data
        source, disconnected or otherwise.

        Since I don't know what your database is, let me show a variation of the
        alternate technique shown in Tim's link that may be more efficient (untested
        air code):

        dim cn, rs, strSQL,ar, arSelected(5), rCount, CurrRR, SelectedCount, i,j
        'open a recordset using the default firehose cursor
        strSQL = "Select idProduct FROM products"
        set rs=cn.execute(s trSQL,,&H0001)
        ar=rs.getrows
        rs.close
        rCount = ubound(ar,2)
        SelectedCount = 0
        do until SelectedCount = 6
        randomize
        CurrRR = cLng(rnd*rCount +0.5)
        if not AlreadySelected (arSelected, CurrRR) then
        arSelected(Sele ctedCount) = CurrRR
        SelectedCount = SelectedCount + 1
        end if
        loop

        strSQL="Select idProduct, description, descriptionLong " & _
        "listPrice, price, smallImageUrl, stock, fileName, noShipCharge " & _
        "FROM products WHERE idProduct IN ("
        for i = 0 to 5
        if i = 0 then
        strSQL = strSQL & ar(0,i)
        else
        strSQL = strSQL & "," & ar(0,i)
        end if
        next
        strSQL = strSQL & ")"
        response.write strSQL 'for debugging only
        set rs=cn.execute(s trSQL,,&H0001)
        ar=rs.getrows
        rs.close
        set rs=nothing
        cn.close
        set cn=nothing

        response.write "<table>"
        for i = 0 to 5
        response.write "<tr>"
        for j = 0 to ubound(ar,1)
        response.write "<td>"
        response.write ar(j, i)
        response.write "</td>"
        next
        response.write "</tr>"
        next
        response.write "</table>"

        Function AlreadySelected (pAr, pSelected)
        dim i
        AlreadySelected = false
        for i = 0 to ubound(pAr)
        if len(pAr(i)) = 0 then
        exit for
        if pAr(i) = pSelected then
        AlreadySelected = true
        exit for
        end if
        next

        Andie wrote:[color=blue]
        > OK,
        >
        > Sorry to sound a little slow, I am still learning this stuff.
        >
        > I have been told I need to do the following steps to display random
        > products from the product table within my database.
        >
        > 1) get recordset of fetured items,
        > (2) disconnect,
        > (3) Add a field and populate with random integers,
        > (4) sort by the random field,
        > (5) display first x number of records.
        >
        > The fields I need to to retrieve from the products table are:
        >
        > idProduct
        > description
        > descriptionLong
        > listPrice
        > price
        > smallImageUrl
        > stock
        > fileName
        > noShipCharge
        >
        > I hope this helps you understand what I am trying to do but I was
        > told that using a disconnected recordset works quicker than using the
        > array method I am currently using.[/color]


        Comment

        Working...