Avatar billede moritz Nybegynder
19. december 2002 - 16:02 Der er 9 kommentarer

Opdatering af database..

Jeg har et problem, jeg kan ikke opdatere indholdet af min database... jeg får denne fejL:

Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
[Microsoft][ODBC Microsoft Access-driver] Der er for få parametre. Der var ventet 5.
/glad2003/admin/update.asp, line 25

filerne----------------------

modifynews.asp:::::::::::::

<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "SERVER=LOCALHOST;DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath(".../.../db/database.mdb")
Conn.Open DSN

SQL = "SELECT * FROM NEWS WHERE ID = " & Request.querystring("ID")
Set RS = Conn.Execute( SQL )
if( NOT RS.EOF ) then
  newsID    = RS("ID")
    newsSubject = RS("Subject")
    newsSmall = RS("Small")
    newsLarge = RS("Large")
    newsAf = RS("Af")
    newsDate = RS("Date")
end if

RS.Close
Conn.Close

Set RS = nothing
Set Conn = nothing
%>
<html>
<head>
<title>Indsætte data i databasen</title>
</head>
<body bgcolor="#000000" text="#FFFFFF">
<h1><font size="2" face="Tahoma">Modify News</font></h1>

<hr size="1" color="#FFFFFF">

<form action="update.asp" method="post">
<font size="1" face="Tahoma">
<input type="hidden" name="newsID" value="<%= newsID %>" >Heading<br>
<input type="text" name="newsSubject"value="<%= newsSubject %>" >
&nbsp;<br>
<br>
Short text
<br>
<input type="text" name="newsSmall" value="<%= newsSmall %>" size="20">
<br>
<br>
Long text
<br>
<input type="text" name="newsLarge" value="<%= newsLarge %>" size="20">
<br>
<br>
Author
<br>
<input type="text" name="newsAf" value="<%= newsAf %>" size="20">
<br>
<br>
Date (must be written in this format: 17-12-2002)
<br>
<input type="text" name="newsDate" value="<%= newsDate %>" size="20">
<br>
<br>
<input type="submit" value="Gem"></font></form>
</body>
</html>



update.asp:::::::::::::::::

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Ny side 2</title>
</head>

<body>
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "SERVER=LOCALHOST;DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath(".../.../db/database.mdb")
Conn.Open DSN

datoStr = Year(Request.Form("newsDate")) & "-" & Month(Request.Form("NewsDate")) & "-" & day(Request.Form("newsDate"))
strSQL = "UPDATE NEWS SET newsSubject='" & Request.Form("NewsSubject") & "', "
strSQL = strSQL & "newsSmall='" & replace(Request.Form("NewsSmall"),"'","''") & "', "
strSQL = strSQL & "newsLarge='" & Request.Form("NewsLarge") & "', "
strSQL = strSQL & "newsAf='" & Request.Form("NewsAf") & "', "
strSQL = strSQL & "newsDate=#" & datoStr & "# "
strSQL = strSQL & "WHERE ID = " & Request.Form("NewsID")

Conn.Execute( strSQL )
Conn.Close

Set Conn = Nothing
response.write "<br>Modification succesfull"
%>

</body>

</html>
Avatar billede soc127754 Nybegynder
19. december 2002 - 16:38 #1
Er dette linje 25?
Set RS = Conn.Execute( SQL )
Avatar billede moritz Nybegynder
19. december 2002 - 16:39 #2
Conn.Execute( strSQL )
Avatar billede sup Nybegynder
19. december 2002 - 17:56 #3
Det er måske din strSQL som er forkert.

Et lille trick du kan bruge til at checke din strSQL er at udskrive den til skærmen for at se hvordan dine data ser ud i sql kaldet.

Der mangler en parametre siger den og måske for få data i strSQL.

Prøv at indsæt følgende 2 linier før Conn.Execute( strSQL )

response.write strSQL
response.end (denne linie er for at afbryde dit asp script)

Se om dine data passer og sql kaldet er rigtigt.

Sup.
Avatar billede sup Nybegynder
19. december 2002 - 18:01 #4
Ser også lidt mærkelig ud synes jeg :)

strSQL = strSQL & "newsDate=#" & datoStr & "# "

Sup.
Avatar billede moritz Nybegynder
19. december 2002 - 18:06 #5
UPDATE NEWS SET newsSubject='Glad styrer2', newsSmall='Glad styrer for vildt og vil sikkert inden for meget kort tid invadere verden! Jaja watch out!', newsLarge='Eigentlig kann.', newsAf='pete.dk', newsDate=#2002-12-9# WHERE ID = 4
Avatar billede sup Nybegynder
19. december 2002 - 18:47 #6
Kan du se der er noget galt i slutningen.

Prøv at skriv

strSQL = strSQL & "newsDate='" & datoStr & "' "
strSQL = strSQL & "WHERE ID = '" & Request.Form("NewsID") & "'"

Så tror jeg den er der.

Sup
Avatar billede moritz Nybegynder
19. december 2002 - 21:18 #7
samme fejl :(
Avatar billede dark-mixer Nybegynder
19. december 2002 - 22:17 #8
Da der er tale om en MS Access Database kan du evt. prøve at køre denne SQL.
strSQL = "UPDATE NEWS SET newsSubject='" & Request.Form("NewsSubject") & "', " &_
        "newsSmall='" & replace(Request.Form("NewsSmall"),"'","''") & "', " &_
        "newsLarge='" & Request.Form("NewsLarge") & "', " &_
        "newsAf='" & Request.Form("NewsAf") & "', " &_
        "newsDate= DateValue('" & datoStr & "') " &_
        "WHERE ID = " & int(Request.Form("NewsID"))
Avatar billede dark-mixer Nybegynder
19. december 2002 - 22:19 #9
Jeg har brugt funktionen DateValue (virker kun i Access) da denne "konvertere" strengen til en Dato access kan bruge.
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