Avatar billede no_doubt Nybegynder
07. januar 2003 - 10:38 Der er 22 kommentarer og
2 løsninger

update

Hvad er der galt med denne bid kode:

<% if Request.Form("B2") <> "" then %>
<%Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source="& Server.MapPath("db.mdb")

Set RS = Server.CreateObject("ADODB.Recordset")
application("message") = Session("login") &"', [action] = 'er away', [klokken] = '"& now()
Set RS = Conn.Execute(sql)

if not RS.eof then
SQL = "UPDATE brugerliste SET loggetind = '1' WHERE id = "& RS("id")
Conn.execute(SQL)
SQL = "UPDATE [actions] SET  [navn] = '"& Session("login") &"', [action] = 'er away', [klokken] = '"& now() &"' WHERE id = "& RS("id") 
Conn.execute(SQL)
end if

RS.Close
Set RS = Nothing
Set Conn = Nothing
%>

Det der er galt er at den ikke opdatere actions med nye data.
Avatar billede medions Nybegynder
07. januar 2003 - 10:42 #1
<% if Request.Form("B2") <> "" then %>
<%Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source="& Server.MapPath("db.mdb")

Set RS = Server.CreateObject("ADODB.Recordset")
application("message") = Session("login") &"', [action] = 'er away', [klokken] = '"& now()
Set RS = Conn.Execute(sql)

if not RS.eof then
SQL = "UPDATE brugerliste SET loggetind = 1 WHERE id = "& RS("id")
Conn.execute(SQL)
SQL = "UPDATE [actions] SET [navn] = '"& Session("login") &"', [action] = 'er away', [klokken] = #now()# WHERE [id] = "& RS("id") 
Conn.execute(SQL)
end if

RS.Close
Set RS = Nothing
Set Conn = Nothing
%>


Prøv med dette...

//>Rune
Avatar billede eagleeye Praktikant
07. januar 2003 - 10:46 #2
2 spørgsmål:

1. Hvilken data type er loggetind i brugerliste tabellen ?

2. Hvilken data type er klokken i Actions tabellen ?
Avatar billede no_doubt Nybegynder
07. januar 2003 - 10:54 #3
2 * Tal
Avatar billede eagleeye Praktikant
07. januar 2003 - 10:56 #4
Du kan ikke lige now() ind i en tal kolonne. Det skal enten være tekst eller mere korrekt dato/tid type.

Hvis den er af typen dato/tid så prøv med denne som bruger access now()

SQL = "UPDATE [actions] SET  [navn] = '"& Session("login") &"', [action] = 'er away', [klokken] = now() WHERE id = "& RS("id")
Avatar billede eagleeye Praktikant
07. januar 2003 - 10:58 #5
Til den første update skal det være som medions har også har skrevet:
SQL = "UPDATE brugerliste SET loggetind = 1 WHERE id = "& RS("id")
Avatar billede no_doubt Nybegynder
07. januar 2003 - 10:58 #6
ADODB.Recordset error '800a0e78'

Operation is not allowed when the object is closed.

/chat/default.asp, line 49
Avatar billede no_doubt Nybegynder
07. januar 2003 - 10:59 #7
skal det defineres yderligere i access end dato og tid ?
Avatar billede no_doubt Nybegynder
07. januar 2003 - 11:03 #8
synes det ser ud som om det er: if not RS.eof then

det er galt med
Avatar billede chriscross Nybegynder
07. januar 2003 - 11:54 #9
Hvor danner du den sql du bruger til at åbne RS med ?

- prøv at sæt en else på din if med en response.write "recordset er tomt" og se hvad det fører til...

:o)
Chriscross
Avatar billede eagleeye Praktikant
07. januar 2003 - 14:52 #10
Ja ok der sker også noget underlidt.... Her sættes en Application variable:

application("message") = Session("login") &"', [action] = 'er away', [klokken] = '"& now()

Så udføres en SQL som ikke kan noget sted i koden...:
Set RS = Conn.Execute(sql)
Avatar billede no_doubt Nybegynder
07. januar 2003 - 18:09 #11
de er væk
Avatar billede eagleeye Praktikant
07. januar 2003 - 20:32 #12
Ok, men hvordan ser sql ud som indgår i den linie:?


<% if Request.Form("B2") <> "" then %>
<%Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source="& Server.MapPath("db.mdb")

Set RS = Server.CreateObject("ADODB.Recordset")
application("message") = Session("login") &"', [action] = 'er away', [klokken] = '"& now()
Set RS = Conn.Execute(sql)          <--------------- Den som hedder sql her!!!!

if not RS.eof then
Avatar billede no_doubt Nybegynder
07. januar 2003 - 21:04 #13
den har jeg fjernet.. begge to..
Avatar billede no_doubt Nybegynder
07. januar 2003 - 21:05 #14
meningen er at den script del først skal ændre loggetind og derefter updatere tre ting i actions.. navn = session, action = hvad der er sket, klokket = now()
Avatar billede eagleeye Praktikant
07. januar 2003 - 22:53 #15
hvad hvis du gør sådan her:



<% if Request.Form("B2") <> "" then %>
<%Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source="& Server.MapPath("db.mdb")

Set RS = Server.CreateObject("ADODB.Recordset")
SQL = "UPDATE brugerliste SET loggetind = 1 WHERE id = "& RS("id")
Conn.execute(SQL)

SQL = "UPDATE [actions] SET  [navn] = '"& Session("login") &"', [action] = 'er away', [klokken] = now() WHERE id = "& RS("id")
Conn.execute(SQL)

RS.Close
Set RS = Nothing
Set Conn = Nothing
%>


Får du så nogle fejl eller opdateres recordet ikke?
Avatar billede no_doubt Nybegynder
07. januar 2003 - 23:11 #16
dette virker:
<%
if Request.Form("B3") <> "" then
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source="& Server.MapPath("db.mdb")
SQL = "SELECT id FROM brugerliste WHERE brugernavn = '"& Session("login") &"' AND (loggetind = 1 or loggetind = 2)"
set rs = Conn.execute(SQL)
if not RS.eof then
SQL2 = "UPDATE brugerliste SET loggetind = 2 WHERE id = " & RS("id") & ""
Conn.execute(SQL2)
SQL3 = "UPDATE [actions] SET [navn] = '"& Session("login") &"', [action] = 'er tilbage på chatten', [klokken] = #"& now() &"#"
Conn.execute(SQL3)
end if
Conn.Close
Set Conn = Nothing
end if
%>

men hvordan får jeg kun tiden og ikke datoen med
Avatar billede eagleeye Praktikant
07. januar 2003 - 23:13 #17
Der mangler også en WHERE på SQL3 måske sådan her her ??

SQL3 = "UPDATE [actions] SET [navn] = '"& Session("login") &"', [action] = 'er tilbage på chatten', [klokken] = now() WHERE ID = " & RS("id")
Avatar billede no_doubt Nybegynder
07. januar 2003 - 23:58 #18
hvorfor ?
Avatar billede eagleeye Praktikant
07. januar 2003 - 23:59 #19
Hvis du ikke har en WHERE på en UPDATE opdater den alle reocrds i tabellen og ikke kun en.
Avatar billede no_doubt Nybegynder
08. januar 2003 - 00:06 #20
der er kun EN
Avatar billede eagleeye Praktikant
08. januar 2003 - 00:10 #21
ARh.. er det så det som er problmmet i det andet der er WHERE id = " & rs("id") på den tilsvarne SQL:

SQL = "UPDATE [actions] SET  [navn] = '"& Session("login") &"', [action] = 'er away', [klokken] = now() WHERE id = "& RS("id")
Conn.execute(SQL)

Så det er :

SQL = "UPDATE [actions] SET  [navn] = '"& Session("login") &"', [action] = 'er away', [klokken] = now()"
Conn.execute(SQL)
Avatar billede no_doubt Nybegynder
08. januar 2003 - 00:12 #22
jep.
Avatar billede no_doubt Nybegynder
23. januar 2003 - 15:32 #23
fandt en anden løsning men deler dem bare mellem jer håber det er ok
Avatar billede medions Nybegynder
23. januar 2003 - 16:32 #24
Thx 4 Poinz

//>Rune
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