Avatar billede ares Nybegynder
02. april 2000 - 13:43 Der er 18 kommentarer og
3 løsninger

Update der fucker up

Jeg har følgende kode

<%
if request("mode") = "arkiv" then
Set Conn=Server.CreateObject("ADODB.Connection")
Conn.Open "PROVIDER=MSDASQL;" & "DRIVER={Microsoft Access Driver (*.mdb)}; " & "DBQ=" & server.mappath("../emk")
SQL = "UPDATE nyhed SET arkiv = '"& request("arkiv")&"' WHERE id = " & Request("id") & ""
Set Rs=Conn.Execute(SQL)

Response.Write "<center><font face='verdana, helvetica' size='4' color='red'>Systemet opdatere posten i databasen<br>vent et øjeblik</font></center>"
response.write("<meta http-equiv='refresh' content='3;URL=nyhed_status.asp'>")

else
Set Conn=Server.CreateObject("ADODB.Connection")
Conn.Open "PROVIDER=MSDASQL;" & "DRIVER={Microsoft Access Driver (*.mdb)}; " & "DBQ=" & server.mappath("../emk")

SQL="Select * from nyhed order by id"
Set Rs=Conn.Execute(SQL)
%>
<table border=0 align="center" width="570" cellspacing="5" cellpadding="0" valign="top">
<%

Do wHile Not rs.EOF
Response.Write "<tr><td width='200' valign='top' align='left' bgcolor='#dddddd'><font face='verdan, arial' size='1' >"& rs("overskrift") &"</font></td>"
Response.Write "<td  width='200' valign='top' align='left' bgcolor='#dddddd'><font face='verdan, arial' size='1' >"& rs("app") &"</font></td>"
Response.Write "<td  width='50' valign='top' align='center' bgcolor='#dddddd'><font face='verdan, arial' size='1' >"& rs("dato") &"</font></td>"
Response.Write "<td  width='30' valign='top' align='center' bgcolor='#dddddd'><font face='verdan, arial' size='1' ><A HREF='nyhed_status.asp?id=120&mode=arkiv&arkiv=falsk'>arkiv</A></font></td></tr>"
  rs.MoveNext
Loop
Response.Write "</table>"
End IF
%>

Jeg for fejlmeddelsen:

Datatyperne stemmer ikke overens i kriterieudtrykket.

/intra/nyhed_status.asp, linje 7

Hvad går galt ????

Jeg har sat feltet arkiv til falsk/sand (tekst)

På forhånd tak

Ares
Avatar billede mute Nybegynder
02. april 2000 - 13:50 #1
Prøv for sjov at skrive teksten som en streng,  det kan være den bytter rundt på det et sted..

eks.

SQL = "UPDATE nyhed SET arkiv = '"&cStr(request("arkiv"))&"' WHERE id = " & cLng(Request("id")) & ""

Håber det hjælper..  (i øvrigt er linie 7 da vist tom i den kode du har lagt med)
Avatar billede ares Nybegynder
02. april 2000 - 13:55 #2
det er stadigvæk det samme !

linje 7 er

Set Rs=Conn.Execute(SQL)

det er bare blevet forkudt en smule grundet copy/paste
Avatar billede mute Nybegynder
02. april 2000 - 13:56 #3
Du kan også prøve følgene ->

1. SQL = "UPDATE nyhed SET arkiv='"&cStr(Request("arkiv"))&"' WHERE id="&cLng(Request("id"))

2. SQL = "UPDATE nyhed SET arkiv='"&Request("arkiv")&"' WHERE id="&Request("id")


En af disse skal virke ellers ligger problemet et 3. sted.
Avatar billede mute Nybegynder
02. april 2000 - 13:59 #4
Bemærk at der IKKE afsluttes med &"
Avatar billede ares Nybegynder
02. april 2000 - 14:05 #5
så kan vi konkludere at fejlen skal findes et 3. sted for deet virker ikke

Ares
Avatar billede mute Nybegynder
02. april 2000 - 14:17 #6
Jeg er vant til at rode med oracle, men prøv denne, ellers laver jeg lige en mere som jeg ville gøre det selv :)

<%
  If Request("mode") = "arkiv" Then
    Set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open "PROVIDER=MSDASQL;" & "DRIVER={Microsoft Access Driver (*.mdb)}; " & "DBQ=" & server.mappath("../emk")
    Set Rs = Conn.Execute("UPDATE nyhed SET arkiv='"&Request("arkiv")&"' WHERE id="&Request("id"))

    Response.Write "<center><font face='verdana, helvetica' size='4' color='red'>Systemet opdatere posten i databasen<br>"&VbCrLf&_
                  "vent et &oslash;jeblik</font></center>"&VbCrLf&_
                  "<meta http-equiv='refresh' content='3;URL=nyhed_status.asp'>"&VbCrLf

  Else
    Set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open "PROVIDER=MSDASQL;" & "DRIVER={Microsoft Access Driver (*.mdb)}; " & "DBQ=" & server.mappath("../emk")
    Set Rs = Conn.Execute("Select * from nyhed order by id")
    Response.Write "<table width='570' cellspacing='5' cellpadding='0' border='0' align='center' valign='top'>"&VbCrLf
    Do While Not Rs.EOF
      Response.Write "  <tr>"&VbCrLf&_
                    "    <td width='200' align='left' valign='top' bgcolor='#dddddd'><font face='verdan, arial' size='1'>"&Rs("overskrift") &"</font></td>"&VbCrLf&_
                    "    <td  width='200' align='left' valign='top' bgcolor='#dddddd'><font face='verdan, arial' size='1'>"&Rs("app") &"</font></td>"&VbCrLf&_
                    "    <td  width='50' align='center' valign='top' bgcolor='#dddddd'><font face='verdan, arial' size='1'>"&Rs("dato") &"</font></td>"&VbCrLf&_
                    "    <td  width='30' align='center' valign='top' bgcolor='#dddddd'><font face='verdan, arial' size='1'><a href='nyhed_status.asp?id=120&mode=arkiv&arkiv=falsk'>arkiv</a></font></td>"&VbCrLf&_
                    "  </tr>"&VbCrLf
    Rs.MoveNext
    Loop
    Response.Write "</table>"&VbCrLf
  End IF
%>
Avatar billede mute Nybegynder
02. april 2000 - 14:24 #7
Denne her ville virke med oracle..
Såvidt jeg ser er den eneste forskel det er jeg åbner et recordset, og så er selve connectstrengen til database lidt anderledes. Der ved jeg dog ikke hvad den rigtige til access er :-/

<%
  If Request("mode") = "arkiv" Then

    Set objConn = Server.CreateObject("ADODB.Connection")
    Set objRS = CreateObject("ADODB.Recordset")
    objConn.Open "PROVIDER=MSDASQL;" & "DRIVER={Microsoft Access Driver (*.mdb)}; " & "DBQ=" & server.mappath("../emk")
    objRS.ActiveConnection = objConn
    Call objRS.open("UPDATE nyhed SET arkiv='"&Request("arkiv")&"' WHERE id="&Request("id"))

    Response.Write "<center><font face='verdana, helvetica' size='4' color='red'>Systemet opdatere posten i databasen<br>"&VbCrLf&_
                  "vent et &oslash;jeblik</font></center>"&VbCrLf&_
                  "<meta http-equiv='refresh' content='3;URL=nyhed_status.asp'>"&VbCrLf

  Else
    Set objConn = Server.CreateObject("ADODB.Connection")
    Set objRS = CreateObject("ADODB.Recordset")
    objConn.Open "PROVIDER=MSDASQL;" & "DRIVER={Microsoft Access Driver (*.mdb)}; " & "DBQ=" & server.mappath("../emk")
    objRS.ActiveConnection = objConn
    Call objRS.Open("Select * from nyhed order by id")

    Response.Write "<table width='570' cellspacing='5' cellpadding='0' border='0' align='center' valign='top'>"&VbCrLf

    Do While Not Rs.EOF
      Response.Write "  <tr>"&VbCrLf&_
                    "    <td width='200' align='left' valign='top' bgcolor='#dddddd'><font face='verdan, arial' size='1'>"&objRS("overskrift") &"</font></td>"&VbCrLf&_
                    "    <td  width='200' align='left' valign='top' bgcolor='#dddddd'><font face='verdan, arial' size='1'>"&objRS("app") &"</font></td>"&VbCrLf&_
                    "    <td  width='50' align='center' valign='top' bgcolor='#dddddd'><font face='verdan, arial' size='1'>"&objRS("dato") &"</font></td>"&VbCrLf&_
                    "    <td  width='30' align='center' valign='top' bgcolor='#dddddd'><font face='verdan, arial' size='1'><a href='nyhed_status.asp?id=120&mode=arkiv&arkiv=falsk'>arkiv</a></font></td>"&VbCrLf&_
                    "  </tr>"&VbCrLf
    Rs.MoveNext
    Loop

    Response.Write "</table>"&VbCrLf

  End IF
%>

Håber det hjælper
Avatar billede mute Nybegynder
02. april 2000 - 14:29 #8
Det er iøvrigt en god ide at smide det man skal bruge i variabler for så at lukke objectet igen -> eks.

  Call objRS.Open("Select * from nyhed order by id")
    strOverskrift = objRS("overskrift")
    strApp = objRS("app")
    lngDato = objRS("dato")
  objRS.Close


Avatar billede mute Nybegynder
02. april 2000 - 14:31 #9
ups..

Du vil så senere kalde dem ved ->

Reponse.Write "<font  size='1'>"&strOverskrift&"</font>"
Avatar billede bocker Nybegynder
02. april 2000 - 15:51 #10
prøv at sæt værdien du opdatere med til enten:

false/true
no/yes
off/on
Avatar billede ares Nybegynder
02. april 2000 - 15:54 #11
Men det er en dansk ver. af access jeg bruger og den angiver værdien som sand/falsk eller ja/nej eller nej/ja

Men ok jeg prøver...

Ares
Avatar billede bocker Nybegynder
02. april 2000 - 16:07 #12
ja men SQL'et skal stadig være på engelsk så vidt jeg ved.
Avatar billede ares Nybegynder
02. april 2000 - 16:41 #13
Jeg har prøvet med false/true, samme fejl.

Men det burde altså også være på dansk, hvis man under opslag vælger at viskontrolelement skal være en tekstboks, skriver access selv sand/falsk.

Ares
Avatar billede mute Nybegynder
02. april 2000 - 16:50 #14
Kan man lave pakker og procedurer i Access ?

Så man kun kalder en procedure i en pakke, og gemmer resultaterne via f.eks.

objComm.Parameters(0).Value = Request("item")
objComm.Parameters(1).Value = Request("item1")
objComm.Parameters(2).Value = Request("item2")

For det er klart det nemmeste at overskue på længere sigt.
Avatar billede sjensen Nybegynder
02. april 2000 - 16:56 #15
Prøv at fjerne det sidste & + de 2 "" således:

SQL = "UPDATE nyhed SET arkiv = '"& request("arkiv")&"' WHERE id = " & Request("id")

De behøver ikke at være der.


Avatar billede sjensen Nybegynder
02. april 2000 - 17:01 #16
Og hvis det er typen der er fejl ved så skriv istedet:

dim act boolean
act = request("arkiv")
SQL = "UPDATE nyhed SET arkiv = '"& act &"' WHERE id = " & Request("id")

Jeg regner med at arkiv i dben er en boolean og ikke en tekst, er det ikke korrekt ?
Avatar billede sjensen Nybegynder
02. april 2000 - 17:03 #17
eller

dim act boolean
dim inp text
inp = request(#arkiv")
act = (inp = "true")
SQL = "UPDATE nyhed SET arkiv = '"& act &"' WHERE id = " & Request("id")
Avatar billede bocker Nybegynder
02. april 2000 - 17:06 #18
ok, prøv at fjerne din ' rundt om sand eller falsk i stedet, de skal ikke være der ved den type felter.
Avatar billede ares Nybegynder
02. april 2000 - 17:24 #19
Boolean ????

Jeg for følgende fejl nu

Slut på sætning var ventet

/intra/nyhed_status.asp, linje 39

dim act boolean
--------^

ares
Avatar billede bocker Nybegynder
03. april 2000 - 00:19 #20
sand/falsk er en boolean...

Har du prøvet at fjerne aprostroferne?
Avatar billede ares Nybegynder
04. april 2000 - 10:27 #21
Tak, for jeres tid.
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