Avatar billede Slettet bruger
21. december 2003 - 16:47 Der er 25 kommentarer og
1 løsning

update recordset

strSQL = "SELECT null As Something, * FROM tabel1;"
Set rs = Server.CreateObject("ADODB.RecordSet")
rs.CursorType = 1
rs.LockType = 3
rs.Open strSQL, tempConn
    If Not (rs.BOF Or rs.EOF) Then
        Do While Not rs.EOF
            rs.fields("Something") = "4"
            rs.MoveNext
        Loop
        rs.MoveFirst
        Do While Not rs.EOF
            Response.write "<b>" & rs("id") & ":</b>" & rs("Something") & "<br>"
            rs.MoveNext
        Loop
    Else
        Response.write "Der er intet i recordsettet."
    End If
rs.Close
Set rs = Nothing


Jeg ønsker at rette i feltet: Something i recordsettet. Men kan ikke. Det er vel noget med at jeg skal åbne det på en anden måde?
Avatar billede erikjacobsen Ekspert
21. december 2003 - 16:52 #1
Ja, du skal da i hvert fald sige rs.update

    Do While Not rs.EOF
            rs.fields("Something") = "4"
            rs.update
            rs.MoveNext
        Loop
Avatar billede ellebaek Nybegynder
21. december 2003 - 16:54 #2
Du mangler i hvert fald en rs.update

Når du sætter noget lig noget andet i et recordset skal du bruge rs.Update bagefter.

fx.
Do While Not rs.EOF
  rs.fields("Something") = "4"
  rs.Update
  rs.MoveNext
Loop

Prøv at sætte det ind..
Avatar billede ellebaek Nybegynder
21. december 2003 - 16:55 #3
Præcis Erik ;-)
Avatar billede Slettet bruger
21. december 2003 - 17:14 #4
jah. den har jeg vel fjernet mens jeg tester. Det virker stadig ikke.
giver mig fejlen:

Microsoft OLE DB Provider for ODBC Drivers (0x80040E21)
Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done.
Avatar billede Slettet bruger
21. december 2003 - 17:21 #5
men når jeg skriver rs.update forsøger den vel også at rette i databasen?
det er ikke ønsket.
Avatar billede netpxg Nybegynder
21. december 2003 - 17:23 #6
Det er vel meningen at update skal opdatere databasen.
Avatar billede Slettet bruger
21. december 2003 - 17:29 #7
nej, kun recordsettet.
Avatar billede erikjacobsen Ekspert
21. december 2003 - 18:49 #8
Hvilken type er "Something", og hvad står der fx i det allerede?
Avatar billede erikjacobsen Ekspert
21. december 2003 - 18:49 #9
Hey, hvorfor bruger du denne sql-sætning med null???

strSQL = "SELECT null As Something, * FROM tabel1;"
Avatar billede Slettet bruger
21. december 2003 - 18:53 #10
for at den sætter feltet Something ind i recordsettet så jeg kan lave en udregnet værdi for feltet
Avatar billede Slettet bruger
21. december 2003 - 18:54 #11
er du med på hvad jeg mener?
Avatar billede erikjacobsen Ekspert
21. december 2003 - 18:57 #12
Den går slet, slet ikke. Udvid din tabel med det felt fra starten, hvis du
altså synes det skal være der. Så kan du sikkert opdatere det på den her måde.
Avatar billede Slettet bruger
21. december 2003 - 19:00 #13
jamen den skal ovhovedet ikke kunne opdateres. Feltet eksisterer overhovedet ikke i databasen. jeg vil bare gærne knytte en udregnet værdi til hver række af recordsettet så jeg kan sortere dem med rs.sort
Avatar billede erikjacobsen Ekspert
21. december 2003 - 19:02 #14
Ok, det er der ikke, men det kan vel sættes ind, ikke. Hvorfor kan du ikke bruge den nemme løsning?
Avatar billede Slettet bruger
21. december 2003 - 19:07 #15
ah.. ok. Jeg tror jeg forstår. Vender lige tilbage om lidt.
Avatar billede Slettet bruger
21. december 2003 - 19:16 #16
ja ok. jeg laver selvfølgelig bare et tomt felt hvor jeg kan skifte værdierne så det passer mig. Tak for det.
Avatar billede erikjacobsen Ekspert
21. december 2003 - 19:17 #17
Det du egentlig vil lave er teoretisk muligt, men:
1) Det er ikke muligt at tilføje et nyt felt til et åbent recordset
2) Du skulle derfor så først oprette et andet recordset, oprette de
passende felter der, løbe det første igennem, kopiere osv,, sortere og udskrive
3) Det er altså ret langsomt
4) Du kan - det tør jeg godt vædde en halvlunken discount julebryg på - designe
din tabel til at indeholde sorteringsinformationen fra starten.
Avatar billede erikjacobsen Ekspert
21. december 2003 - 19:18 #18
Øhm ... jaaaah ... din "løsning" lyder da meget godt *g*. Hvad sker der
hvis flere kigger på den samtidigt. Desuden nummer 3) ovenfor!
Avatar billede erikjacobsen Ekspert
21. december 2003 - 19:23 #19
Iøvrigt - at tilføje felter: kig på "append" i
  http://www.devguru.com/Technologies/ado/quickref/recordset_fieldscollection.html
men - det er kun på lukkede recordset, så den går vist ikke i dit tilfælde ;(
Avatar billede Slettet bruger
21. december 2003 - 19:33 #20
Det var først planen at lave basen lidt kvikkere. Men det kan jeg ikke:
http://www.eksperten.dk/spm/439322
Avatar billede Slettet bruger
21. december 2003 - 19:40 #21
holdt! stop ulykken. Nu blander jeg tingene sammen. Det var et andet problem. Giv mig lige lidt tid. Så kommer jeg med mere info.
Avatar billede erikjacobsen Ekspert
21. december 2003 - 19:42 #22
Sådanne funktioner understøttes vistnok ikke via den driver du bruger i ASP/IIS.
Jeg forstår heller ikke hvorfor du overhovedet vil bruger Access og for den
sags skyld ASP hvis du vil gøre noget hurtigt.
Avatar billede Slettet bruger
21. december 2003 - 19:44 #23
ok drop alt det her. Svar lige, og så opretter jeg et nyt spørgsmål. Beklager besværret.
Avatar billede erikjacobsen Ekspert
21. december 2003 - 19:46 #24
Nej, du får bestemt ingen svar fra mig. Dels ved jeg ikke om jeg har løst
dit problem, dels er 200 p alt for meget til mig. Jeg frafalder.
Avatar billede Slettet bruger
21. december 2003 - 19:48 #25
ok, men tak for hjælpen.
Avatar billede Slettet bruger
21. december 2003 - 19:48 #26
lukker
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