Avatar billede decrypto Nybegynder
09. oktober 2004 - 23:11 Der er 15 kommentarer og
1 løsning

Smide et record i et array udfra et recordset

Jeg er i færd med at lave en generel løsning, hvor jeg har behov for at tage et recordset og 'klippe' det op i et record af gangen, som jeg vil smide ind i et array.
Nedenstående kode er et forsøg på det, men giver naturligvis fejl.

Er der nogen der har et forslag.
Jeg har tænkt på, at bruge en metode med GetRows(). Men da løsningen skal være generel, skal det være at sætte et record ind i et array af gangen.
 
For i = 0 To 64
  Set arrObjList(i) = objRS.????Fields?????(i)
Next

Håber der er nogen der kan hjælpe.
Avatar billede decrypto Nybegynder
09. oktober 2004 - 23:20 #1
Den skal naturlig vis tage næste record, så måske skal koden se sådan ud....

For i = intFraNode To intTilNode
    Set arrObjList(i) = objRS.???????(i)
    objRS.MoveNext
Next
Avatar billede Slettet bruger
09. oktober 2004 - 23:23 #2
Prøv dette, det skulle give et to-dimensionelt array ifølge hvad jeg kan læse mig til her http://www.devguru.com/Technologies/ado/quickref/recordset_getrows.html og såvidt jeg kan se behøver du ikke at køre i en løkke.
arrObjList= objRS.GetRows(-1, adBookmarkFirst)
Avatar billede Slettet bruger
09. oktober 2004 - 23:25 #3
Avatar billede decrypto Nybegynder
09. oktober 2004 - 23:27 #4
hmmm jeg har haft GetRows() i tankerne, men meningen er at returnere arrObjList, sam man så skal kunne pakke ud på sædvanligvis.
(Nedenstående er sikkert ren volapyk, men jeg man forstår tanken)
Fx. arrObjList(i).objRS("IDNR")
arrObjList(i).objRS("NAVN")

Etc.

Jeg er naturligvis åbn for andre forslag, bare jeg kan pakke tingene ud som overstående.
Avatar billede Slettet bruger
09. oktober 2004 - 23:33 #5
Hmm det tror jeg ikke man umiddelbart kan. Du kan evt. smide det over i et Dictionary objekt men såvidt jeg har hørt (ved ikke om det passer :-) så er det ikke godt rent performance mæssigt.
Avatar billede Slettet bruger
09. oktober 2004 - 23:34 #6
Hvad med en kloning af dit recordset?
http://www.devguru.com/Technologies/ado/quickref/recordset_clone.html
Det er vel egentlig det som kommer tættest på det du vil?
Avatar billede decrypto Nybegynder
09. oktober 2004 - 23:35 #7
Grunden til jeg gerne vil beholde 'navnene' (objRS("IDNR"), objRS("NAVN")), er det er nemmere for en anden udvikler at kalde min funktion, og derefter pakke det ud som han plejer.
Avatar billede decrypto Nybegynder
09. oktober 2004 - 23:37 #8
De 'logiske' navne felterne har recordset, skal derfor bibeholdes, og ikke erstattes af getrows felter, hvor man selv tvinger sig ud i at holde styre på felterne.

Håber I kan se hvad jeg mener.
Avatar billede decrypto Nybegynder
09. oktober 2004 - 23:38 #9
hmmm kloning, hvad vil det hjælpe mig med???
Avatar billede Slettet bruger
09. oktober 2004 - 23:43 #10
Det vil give dig en nøjagtig kopi af dit recordset, bare med et andet navn

Du har dit objRS, så kan du lave en
Set objRsClone = objRs.Clone(adLockReadOnly)

Så vil det bare blive til
objRSClone("IDNR"), objRSClone("NAVN") o.s.v.
Avatar billede decrypto Nybegynder
09. oktober 2004 - 23:48 #11
Okay når jeg så har klonet mit recordset. Hvordan kan jeg så tage et record af gangen og smide det ind i et array??
Avatar billede Slettet bruger
09. oktober 2004 - 23:52 #12
Det ved jeg stadigvæk ikke :-) Min ide her gik på at du fik en kopi af dit recordset som der så kunne arbejdes videre med istedet for et array. Altså et recordset med samme poster og felter i et recordset istedet for i et array.

Ellers tror jeg at jeg har misforstået dig :-)
Avatar billede decrypto Nybegynder
09. oktober 2004 - 23:57 #13
Hele ideen med alt dette er at lave en generel funktion, der kan strukturere en paging på et db udtrukket resultat. Dvs. at dele record sættet op i chunks.

Har du nogen ide, hvordan jeg kan videretænke det???
Avatar billede Slettet bruger
10. oktober 2004 - 00:01 #14
Ikke andet end at et recordset har et par funktioner man kan bruge til at "page" med, PageCount og PageSixe
http://www.devguru.com/Technologies/ado/quickref/recordset_pagecount.html

Jeg ved ikek om du kan bruge det, jeg kan ihvertfald ikke komme i tanke om andet på nuværende tidspunkt :-)
Avatar billede decrypto Nybegynder
10. oktober 2004 - 11:20 #15
Jeg blev nødt til at gøre brug af GetRows() alligevel. Så jeg lukker det oprindelige spørgsmål, og regner med at det ikke kan lade sig gøre.
Avatar billede decrypto Nybegynder
10. oktober 2004 - 11:21 #16
Tak for tiden, der er blevet brugt på mig.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester