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
Annonceindlæg fra Computerworld it-jobbank
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)
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
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.
02. april 2000 - 13:59
#4
Bemærk at der IKKE afsluttes med &"
02. april 2000 - 14:05
#5
så kan vi konkludere at fejlen skal findes et 3. sted for deet virker ikke Ares
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 ø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 %>
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 ø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
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
02. april 2000 - 14:31
#9
ups.. Du vil så senere kalde dem ved -> Reponse.Write "<font size='1'>"&strOverskrift&"</font>"
02. april 2000 - 15:51
#10
prøv at sæt værdien du opdatere med til enten: false/true no/yes off/on
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
02. april 2000 - 16:07
#12
ja men SQL'et skal stadig være på engelsk så vidt jeg ved.
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
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.
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.
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 ?
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")
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.
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
03. april 2000 - 00:19
#20
sand/falsk er en boolean... Har du prøvet at fjerne aprostroferne?
04. april 2000 - 10:27
#21
Tak, for jeres tid.
Kurser inden for grundlæggende programmering