Avatar billede mskjoldp Novice
28. december 2003 - 22:23 Der er 15 kommentarer og
1 løsning

Hjælp til asp db mail string

Jeg prøver at lave en kode der sender en email til en bruger mailadresse, men inden jeg er nået dertil skal jeg hive oplysninger op fra en db. Det peøver jeg på efter at der er sendt en intern mail.
Efter koderne til at sende den interne mail udvider jeg koden til at hente oplysninger om brugerens email add. men jeg får denne fejlmeddelelse:

Current Recordset does not support updating. This may be a limitation of the provider, or of the selected locktype.

Koden er skaber problemer:

            If Request("modtager") <> "" AND Request("emne") <> "" AND Request("besked") <> "" then
                'Lægger værdierne ned i variabler
                modtager = Request.Form("modtager")
                emne = Server.HTMLEncode(Request.Form("emne"))
                besked = Server.HTMLEncode(Request.Form("besked"))
                afsender = Session("nick")
                    Set rs = Server.CreateObject("ADODB.Recordset")
                        Sql = "SELECT * FROM mail"
                        rs.Open Sql, Conn, 1, 3
                            rs.Addnew
                            rs("mailmodtager") = modtager
                            rs("mailafsender") = afsender
                            rs("mailEmne") = emne
                            rs("mailbesked") = besked
                            rs("mailDato") = Now()
                            rs.Update
                        rs.Close
                    Set rs = Nothing
                   
Her udvider jeg så koden og vil hente oplysninger om brugerens mail add.

Set rs = Conn.Execute("SELECT * FROM bruger WHERE nick = '" & afsender & "'")
                        dim medlemmet
                        rs("nick") = medlemmet
                        Response.Write medlemmet & "test" & "ny"
            End if %>

Hvis jeg udskifter medlemmet med rs("nick") er der ingen problemer, men jeg vil gerne sende værdien af medlemmet vidre til koden der sender mailen externt (ud af huset).

Er der en vej uden om fejlmeddelelsen?

Giver min beskivelse mening?
/Skjold
Avatar billede mskjoldp Novice
28. december 2003 - 22:25 #1
denne her for lov til at løbe gennem og udskriver fint stringen:

                    Set rs = Conn.Execute("SELECT * FROM bruger WHERE nick = '" & afsender & "'")
                        Response.Write rs("nick") & "test" & "ny"
            End if %>

/ Skjold
Avatar billede eagleeye Praktikant
28. december 2003 - 22:30 #2
Jeg går ud fra fejlen kommer i linjen med  rs.Update 
Er det et web-hotel, for det kunne være hvis database filen var read-only
Avatar billede mskjoldp Novice
28. december 2003 - 22:33 #3
jeg har egen server stående her... og har fuld kontrol over databasen. jeg har ikke ændret skrivebetingelserne i db'en ...

/ Skjold
Avatar billede eagleeye Praktikant
28. december 2003 - 22:36 #4
men er det ikke i linjen rs.Update feljen kommer?
Avatar billede mskjoldp Novice
28. december 2003 - 22:40 #5
nej det er i linjen her:

rs("nick") = medlemmet

sorry det skulle jeg jo have skrevet

/Skjold
Avatar billede mskjoldp Novice
28. december 2003 - 22:41 #6
den update/addnew fint nok
Avatar billede eagleeye Praktikant
28. december 2003 - 22:47 #7
Når ok, det fordi du kan ikke opdatere et recordset når du bruger set rs = Conn.Exeucte.. Så skal man bruge rs.Open som det første styk kode:

rs("nick") skal opdaters i  bruger  tabellen eller i mail tabellen?
Avatar billede eagleeye Praktikant
28. december 2003 - 22:48 #8
Du vil flytte rs("nick") ind i variablen medlemmet ??
Så skal det være:

medlemmet = rs("nick")
Avatar billede mskjoldp Novice
28. december 2003 - 22:52 #9
ok jeg har forstået at rs = Conn.Execute ikke kan bruges.

Og måske laver jeg en fejl ved at udvide koden efter at addew stringen er færdig, fordi jeg skal ikke update rs("nick") hverken i bruger eller i mail tabellen, men jeg skal bare hente de oplysninger der ligger i bruger tabellen på den bruger som svare over ens med variablen afsender...

Det er måske også forkert at bruge både rs.addnew og rs.update?

/Skjold
Avatar billede mskjoldp Novice
28. december 2003 - 22:55 #10
Når jeg kender afsenderen, vil jeg hente hans emailadd. og når jeg så har brugerens email add. så vil jeg sende det videre til koden der sender emailen ud af huset..
Avatar billede eagleeye Praktikant
28. december 2003 - 22:56 #11
Nu har jeg måske forvirret mere end godt er ;)

Den måde du gør ved mail tabellen og rs.Open er det rigtig først at kalde rs.Addnew og ligge data i recordset så klade rs.Update så databasen bliver opdateret med de nye data.

Det er helt i orden at bruge  rs = Conn.Execute  så længe man kun vil hendte data ud af databasen.

Så prøv at rette sådan det er:

medlemmet = rs("nick")
Avatar billede mskjoldp Novice
28. december 2003 - 22:57 #12
forstå mig ret. Jeg sender kode der opretter en my mail i mail tabellen. Den der har sendt mailen er bruger og har en irl emailadd som jeg så skal sende til i en efterfølgende kode
Avatar billede mskjoldp Novice
28. december 2003 - 22:58 #13
prøver...
Avatar billede mskjoldp Novice
28. december 2003 - 22:59 #14
hej hallo det virker .... ej hvor småt.... at det ikke var andet...ok, smid et svar og jeg arbejder videre.. :D

/Skjold
Avatar billede mskjoldp Novice
28. december 2003 - 23:00 #15
damn da. Der skal ikke meget til nogen gange...
Avatar billede eagleeye Praktikant
28. december 2003 - 23:01 #16
Ok ja det er nogle gange ikke meget ;)
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