|
| Tilfældig post i database ? Fra : Smirge |
Dato : 11-03-04 14:08 |
|
Jeg har nu gennemlæst internettet samt gruppen herinde, og jeg har næsten
fundet svar på mit spørgsmål :
Jeg har en database(duh!) som jeg vil udvælge en tilfældig post fra.
Jeg har lavet en funktion, som tæller antal poster i tabellen, og returnere
et tilfældigt tal fra databasen - det virker fint, MEN!!!
ID feltet kommer ikke i numerisk rækkefølge - det kan godt være der mangler
nogle stykker mellem 1 og 10 f.eks: ser ID feltet i en af tabellerne såden
ud :
1
2
6
8
9
Det giver 5 poster - men hvis ovennævnte function returnerer tallet 3 - som
er gyldigt, da der er 5 poster i tabellen, så får jeg en fejl på siden (EOF
OR BOF) fejlen...
Hvordan selecterer jeg med de valide værdier i ID feltet ??
Martin
| |
Smirge (11-03-2004)
| Kommentar Fra : Smirge |
Dato : 11-03-04 14:13 |
|
> Jeg har nu gennemlæst internettet samt gruppen herinde, og jeg har næsten
> fundet svar på mit spørgsmål :
>
> Jeg har en database(duh!) som jeg vil udvælge en tilfældig post fra.
>
> Jeg har lavet en funktion, som tæller antal poster i tabellen, og
returnere
> et tilfældigt tal fra databasen - det virker fint, MEN!!!
>
> ID feltet kommer ikke i numerisk rækkefølge - det kan godt være der
mangler
> nogle stykker mellem 1 og 10 f.eks: ser ID feltet i en af tabellerne såden
> ud :
>
> 1
> 2
> 6
> 8
> 9
>
> Det giver 5 poster - men hvis ovennævnte function returnerer tallet 3 -
som
> er gyldigt, da der er 5 poster i tabellen, så får jeg en fejl på siden
(EOF
> OR BOF) fejlen...
>
> Hvordan selecterer jeg med de valide værdier i ID feltet ??
>
> Martin
skal lige nævne at det er access 2000 og at der mangler tal skyldes at
posterne engang i mellem bliver slettet skyldes at et givent produkt er
solgt...
Martin
| |
Torben Brandt (11-03-2004)
| Kommentar Fra : Torben Brandt |
Dato : 11-03-04 14:28 |
|
Smirge skrev:
>>Jeg har nu gennemlæst internettet samt gruppen herinde, og jeg har næsten
>>fundet svar på mit spørgsmål :
>>
>>Jeg har en database(duh!) som jeg vil udvælge en tilfældig post fra.
>>Jeg har lavet en funktion, som tæller antal poster i tabellen, og
>>returnere et tilfældigt tal fra databasen - det virker fint, MEN!!!
>>ID feltet kommer ikke i numerisk rækkefølge - det kan godt være der
>>mangler nogle stykker mellem 1 og 10 f.eks: ser ID feltet i en af
>>tabellerne såden ud :
>>
>>1
>>2
>>6
>>8
>>9
>>
>>Det giver 5 poster - men hvis ovennævnte function returnerer tallet 3 -
>>som er gyldigt, da der er 5 poster i tabellen, så får jeg en fejl på siden
>>(EOF OR BOF) fejlen...
>>
>>Hvordan selecterer jeg med de valide værdier i ID feltet ??
>
> skal lige nævne at det er access 2000 og at der mangler tal skyldes at
> posterne engang i mellem bliver slettet skyldes at et givent produkt er
> solgt...
I tråden der starter med emnet "SELECT RANDOM" fra 08-03-2004 10:30
(fortsætter delvist i <news:dk.edb.database>) er der diskuteret et par
muligheder.
Alternativt kan du trække id'erne fra posterne ud af tabellen.
Gemme dem som et array (evt med rs.GetRows)
Så kan du se hvor lang array'et er
Vælg et tilvældigt heltal (Int(Rnd * antalPoster))
Find hvilket id, der er på den tilsvarende plads i array'et
Træk denne post ud af databasen.
/Torben
| |
Smirge (12-03-2004)
| Kommentar Fra : Smirge |
Dato : 12-03-04 12:51 |
|
> > Hvordan selecterer jeg med de valide værdier i ID feltet ??
> >
> > Martin
> skal lige nævne at det er access 2000 og at der mangler tal skyldes at
> posterne engang i mellem bliver slettet skyldes at et givent produkt er
> solgt...
>
> Martin
Bare til info :
Jeg lavede en count(id) og talte antal record i DB. Dernæst brugte jeg
rs.movenext(counter) (flyt cursor X pladser i databasen) og læser så ud
derfra - på den måde undgår jeg at generere et tilfældigt tal som ikke
findes i id feltet i databasen.
Ved ikke om det er den mest optimale løsning, men det virker ;)
Martin
| |
|
|