Avatar billede gatez Nybegynder
26. august 2001 - 22:42 Der er 13 kommentarer og
1 løsning

DB Update

Hejsa,

Jeg har et mail system på min side og et lille problem ;-)

Når en mail læses skal jeg have siden til at opdaterer et feldt i databasen.

Sådan ser min \"læs mail\" side ud:

-----------------KODE 1 START------------------

<%@ Language=VBScript %>
<!--#INCLUDE FILE =\"code_lib.asp\" -->
<% SessionTjek() %>
<HTML>
<HEAD>
<META NAME=\"GENERATOR\" Content=\"Microsoft Visual Studio 6.0\">
</HEAD>
<BODY>
<CENTER>
<%
SQL = \"SELECT mail_body, mail_subject, m.mail_sendt, u.user_name FROM mails m, users u WHERE (u.id = m.mail_from) AND mail_id = \"& Request.QueryString(\"mail_id\") &\" AND mail_owner = \"& Session(\"mail_login\")
Set mailen = COnn.ExeCute(SQL)
If mailen.EOF Then
    Response.Write \"Der er opstået en fejl...Prøv at logge ind igen\"
Else
%>
<TABLE CELLSPACING=\"0\" BORDER=\"0\">
    <TR>
        <TD BGCOLOR=\"#CCCCCC\">
            Sendt d. :
        </TD>
        <TD BGCOLOR=\"#F0F0F0\">
            <% = datovis(mailen(\"mail_sendt\")) %>&nbsp;:&nbsp;<% = FormatDateTime(mailen(\"mail_sendt\"),4) %>
        </TD>
    </TR>
    <TR>
        <TD BGCOLOR=\"#CCCCCC\">
            Afsender :
        </TD>
        <TD BGCOLOR=\"#F0F0F0\">
            <% = mailen(\"user_name\") %>
        </TD>
    </TR>
    <TR>
        <TD BGCOLOR=\"#CCCCCC\">
            Overskrift :
        </TD>
        <TD BGCOLOR=\"#F0F0F0\">
            <% = mailen(\"mail_subject\") %>
        </TD>
    </TR>
    <TR>
        <TD VALIGN=\"TOP\" COLSPAN=\"2\">
            <HR>
        </TD>
    </TR>
    <TR>
        <TD VALIGN=\"TOP\" COLSPAN=\"2\">
            <% = mailen(\"mail_body\") %>
        </TD>
    </TR>
    <TR>
        <TD ALIGN=\"RIGHT\" COLSPAN=\"2\">
            <A HREF=\"inbox.asp\">Tilbage til indbakke</A>
            <A HREF=\"sendmail.asp?write=answer&mail=<% = Request.QueryString(\"mail_id\") %>\">Besvar</A>
        </TD>
    </TR>
</TABLE>
<% End If %>
</CENTER>
</BODY>
</HTML>
-----------------KODE 1 SLUT------------------

Altså jeg skal have den til at lave en:
rs(\"readt_mail\") = Ok
rs.Update

Sådan så den skriver \"ok\" i database feldtet readt_mail så snart bruger har læst sin besked.

Men hvordan for jeg det til at virke ?
Avatar billede jiggypoof Nybegynder
26. august 2001 - 23:16 #1
du kan vel

if request.querystring(\"mail_id\") then
rs(\"readt_mail\") = Ok
rs.Update
else 

???
Avatar billede gatez Nybegynder
26. august 2001 - 23:27 #2
Så for jeg denne fejl:

Microsoft VBScript runtime error \'800a000d\'

Type mismatch: \'rs\'

/betachat/mailsystem/readmail.asp, line 81
Avatar billede farouche Nybegynder
26. august 2001 - 23:37 #3
Som jeg kan se det så laver du et recordset der hedder \"mailen\", men du har ikke et recordset der hedder \"rs\".

Du skal vel skrive  :

mailen(\"readt_mail\") = Ok
mailen.Update
Avatar billede farouche Nybegynder
26. august 2001 - 23:38 #4
Du skal selvfølgelig have defineret dit recordset som ikke read-only
Avatar billede gatez Nybegynder
26. august 2001 - 23:39 #5
Hej farouche

Nu har jeg prøvet det du skrev men så for jeg denne fejl kode:

ADODB.Recordset error \'800a0cc1\'

Item cannot be found in the collection corresponding to the requested name or ordinal.

/betachat/mailsystem/readmail.asp, line 80
Avatar billede gatez Nybegynder
26. august 2001 - 23:41 #6
Hvordan gøres det: ?
recordset som ikke read-only
Avatar billede gatez Nybegynder
26. august 2001 - 23:46 #7
Min database er ikke read-only. For alt andet arbejde i databasen virker.

Det enste jeg mangler er at når siden loades så skriver den \"OK\" i databasen.
Jeg trode det var nemt at lave i asp men det vidst et stører arbejde....
Avatar billede jiggypoof Nybegynder
26. august 2001 - 23:48 #8
collection corresponding to the requested name

mangler du så ikke et item som hedder readt_mail i din tabel?
Avatar billede gatez Nybegynder
26. august 2001 - 23:50 #9
-->  Jiggypoof

Nej bare det var fejlen :-)
readt_mail  er i min database...
Avatar billede farouche Nybegynder
26. august 2001 - 23:50 #10
eeeehhhhh, ja ser du, normalt gør jeg det ikke som du gør, da jeg hovedsaglig arbejder med
command objekter og stored procedures.

Men prøv følgende  :

set mailen = server.createobject(\"adodb.recordset\")

mailen.open \"sqlstreng\", conn, adOpenForwardOnly, adLockOptimistic, adCmdTable
Avatar billede gatez Nybegynder
27. august 2001 - 00:01 #11
Jeg prøver vidrer i morgen og giver point til det svar der hjælper mig.

Men tak for alle jeres svar.
Avatar billede burningice Nybegynder
27. august 2001 - 10:00 #12
mailen(\"readt_mail\") = Ok skal jo nok være
mailen(\"readt_mail\") = \'Ok\'
Avatar billede burningice Nybegynder
27. august 2001 - 10:02 #13
det kan dog være at du skal bruge conn.execute(\"UPDATE tabel SET (readt_mail = \'OK\')\") hvis du ikke har oprettet adodb.recordset
Avatar billede gatez Nybegynder
06. september 2001 - 13:54 #14
Intet virker sorry...
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