Avatar billede netrnger Nybegynder
14. marts 2001 - 12:57 Der er 19 kommentarer og
2 løsninger

Recordset inde i recordset?

Hvordan opretter man et recordset inde i et recordset?

jeg har følgende til at lave mit \"overordnede\" recordset:
-----
set RS = Server.CreateObject(\"ADODB.Recordset\")
RS.Fields.Append \"navn\", 129, 255 \'129 = adChar
RS.Open
RS.AddNew
RS(\"navn\") = \"Blah blah\"
RS.Update
-----
Nu vil jeg så gerne have tilføjet et \"felt\" ligestillet med RS(\"navn\") hvor jeg kan smide et recordset ind i.

Jeg havde forestillet mig noget ala:
RS(\"ekstraRecordSet\") = Server.CreateObject(\"ADODB.Recordset\")
og så ligge variabler ind via
RS(\"ekstraRecordSet\")(\"feltINytRecordset\") = \"blah\"

men jæ ka æt hit uv a\'et som Polle siger i sonofon-reklamerne... nogen der har nogle gode ideer?
Avatar billede sone Nybegynder
14. marts 2001 - 12:59 #1
Det kan man ikke.
Et recordset er bare en (kæmpe) stor tabel med felter svarende til felterne valgt med din SQL-sætning.
Avatar billede ellebaek Nybegynder
14. marts 2001 - 13:02 #2
jeg fatter nada af hvad du vil ...
Avatar billede lytzen Nybegynder
14. marts 2001 - 13:46 #3
Hey ellebaek. Hvis du ikke fatter, hvad han skriver, så kan du jo bare blande dig udenom. Sværere er det ikke.
Avatar billede Slettet bruger
14. marts 2001 - 13:53 #4
Med fare for at det lyder som om, jeg blander mig bare for at blande mig, så vil jeg lige give lytzen ret. Men hvis du (ellebaek) gerne vil svare på spørgsmålet, men ikke er sikker på, hvad det betyder, så kan du jo bare have spurgt netrnger på en lidt pænere måde. Eller det er måske en tand for svært?
Avatar billede ellebaek Nybegynder
14. marts 2001 - 14:42 #5
>>lytzen jeg tror godt jeg kan finde ud af hvad det er han vil have lavet, og hvis det nu var tilfældet at jeg forstod hvad det var der stod, ville der nok være c´hance for at jeg kunne svare ham på hvad han vil vide... og btw ... tak i lige måde

goddess >> alle ved hvad: \"jeg fatter nada af hvad du vil\" betyder ... det er en fin nok måde at skrive det på, og det er ikke for svært at sige ... forklar bedre .. med det har samme betydning...
Avatar billede ellebaek Nybegynder
14. marts 2001 - 14:45 #6
alt respekt for dig lytzen ...

Men hvad med selv at blande dig selv uden om ?
Avatar billede netrnger Nybegynder
14. marts 2001 - 14:56 #7
hey slap nu af - i lyder som en børnehave...
Hvis ikke i har noget brugbart at sige til debatten, så fis lige af, og lad de seriøse folk komme til...

ellebaek: hvad er det du ikke forstår? for jeg vil gerne prøve at udpensle det lidt hvis du mener du har en løsning til det. Men altså det korte af det lange er at jeg vil have et recordset inde i et recordset (som jeg selv har kreeret, og ikke er lavet fra databasen)
Avatar billede ellebaek Nybegynder
14. marts 2001 - 15:00 #8
jeg har forstået du har en database med en tabel, inde i den tabel skal du ved hjælp af et andet recordset hente en information ... er det korekt ..

for så har jeg en løsning
Avatar billede netsrac Praktikant
14. marts 2001 - 15:16 #9
Det lyder for mig som om du prøver at lægge et recordsæt ind i et felt i en anden record. Det tror jeg ikke kan lade sig gøre.
Avatar billede netrnger Nybegynder
14. marts 2001 - 15:21 #10
netsrac: fuldstændig korrekt - det er det jeg prøver. At lave en attribut i mit recordset som har datatypen som et recordset istedet for f.eks. string eller integer.
Avatar billede ellebaek Nybegynder
14. marts 2001 - 15:27 #11
nu troede jeg ellers lige jeg havde fat i tråden, men nu tabte jég den igen !!
Avatar billede netsrac Praktikant
14. marts 2001 - 15:48 #12
Hvilken database bruger du ?
Avatar billede netrnger Nybegynder
14. marts 2001 - 15:55 #13
netscrac: det er som sådan ligemeget, da jeg som sagt slet ikke gør brug af databasen, men netop oprettet recordsettet selv.

Grunden til at jeg bruger recordsets, er fordi det er eneste måde jeg kan få et variabelt antal poster (objekter) ud af en funktion. Jeg har prøvet at få en funktion til at retunere et array, men det går ikke godt hvis man ikke på forhånd kender antallet og størrelsen af arrayet. Recordsets virker også mere forståelige da man kan navngive sine attributter, og bruge de velkendte MoveNext og MoveFirst og sådan.
Avatar billede netsrac Praktikant
14. marts 2001 - 16:01 #14
Nu er jeg heller ikke med mere, du forsøger jo at smide et recordssæt over i en record i et andet record sæt så må du da også bruge en database ?
Avatar billede netrnger Nybegynder
14. marts 2001 - 16:06 #15
nope - du kan sagtens lave dine egne recordsets uden at bruge en database. Prøv at tage et kig på koden i spørgsmålet.
Men det er rigtigt at RecordSets normalt vil blive brugt i forbindelse med udtræk fra en database, men dette er ikke tilfældet i denne problemstilling.

Jeg er vant til at programmere objektorienteret hvor man smider objekter frem og tilbage mellem funktioner hele tiden, og det nærmeste jeg kan komme mine i at lave mine egne objekter i asp (uden at lave komponenter) er recordsets
Avatar billede netsrac Praktikant
14. marts 2001 - 16:11 #16
Hm, jeg tror du er inde på noget som ikke rigtigt kan lade sig gøre. Jeg kan ikke forestille mig hvordan det skulle kunne lade sig gøre.
Avatar billede netrnger Nybegynder
14. marts 2001 - 16:22 #17
ja jeg tror desværre også at det efterhånden er ved at gå op for mig at det ikke kan lade sig gøre :(

men jeg lader lige spørgsmålet stå, hvis der skulle være nogle \'aften/natte-folk\' der kunne have et svar...
Avatar billede netsrac Praktikant
14. marts 2001 - 16:26 #18
Hm...kom lige til at tænke på noget, har du prøvet med et array i et array, jeg ved ikke om det kan lade sig gøre, men det er vel et forsøg værd.
Avatar billede netrnger Nybegynder
14. marts 2001 - 16:32 #19
som jeg sagde i en tidligere kommentar \"Jeg har prøvet at få en funktion til at retunere et array, men det går ikke godt hvis man ikke på forhånd kender antallet og størrelsen af arrayet\", så problemet opstår allerede når jeg laver det første array; netop at jeg ikke kan få den ud af funktionen...
Avatar billede lytzen Nybegynder
15. marts 2001 - 11:12 #20
Som de andre også siger, er det sandsynligvis ikke muligt at have rs i rs. Det er ellers en smart løsning du havde fundet dig der :)
Dog kan du løse dit problem på en anden måde, idet det faktisk ER muligt at returnere et dynamisk array fra en funktion. Jeg har lige skrevet en kodestumt til dig, hvor en whileløkke tilføjer værdier til et dynamiskarray der så tilsidst tilføjes i et statisk.

<%
function arrayTest
    Dim mitArray(1)
    Dim variabelArray()
    i = 0
    \' Stopper værdier i et andet array
    do while i < 4
        \' Arrayets længde skal redifineres inden       
        ReDim preserve variabelArray(i+1)
        variabelArray(i) = \"Thomas\" & i & \"<br>\"
        i = i + 1
    loop
    \' Arrayet der skal returneres, får nu det indre array på plads 0
    mitArray(0) = variabelArray
      arrayTest = mitArray
end function

arrayUdenfor = arrayTest
response.write arrayUdenfor(0)(0)
response.write arrayUdenfor(0)(1)
response.write arrayUdenfor(0)(2)
response.write arrayUdenfor(0)(3)
%>
Avatar billede netrnger Nybegynder
20. marts 2001 - 13:40 #21
hovsa - jeg glemte da vist at få dette spørgsmålet lukket. Men lytzen har faktisk ret i det med dynamiske arrays. Det er åbenbart fordi det første (yderste) array _ikke_ må være dynamisk, men når bare den er statisk, så må de resterende arrays godt være dynamiske, og jeg kan derved få returneret det jeg vil. Så dermed har lytzen givet mig løsningen på mit problem og får mine point (om netsrac gav lytzen hintet ved jeg ikke, men han får også lige et par point :))
tak til dem der forsøgte...
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