Avatar billede desd Nybegynder
25. juli 2003 - 16:01 Der er 12 kommentarer og
1 løsning

nogen der kan se fejlen?

Jeg har følgende kode:

<%
    If Request.Form("MenuSettingsNewUpdate") = "Submit" Then

        Response.Clear()

        Set conn = Server.CreateObject("ADODB.Connection")
        set rs = server.CreateObject("ADODB.Recordset")
        DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
        DSN = DSN & "DBQ=" & Server.MapPath(strDBDirConfig)
        Conn.Open DSN

        rs.Open "SELECT * FROM menu_config WHERE id=0", conn,1,3
        rs.AddNew
       
        rs("succession") = Request.Form("NewSuccession")
        rs("menulinkname") = Request.Form("NewLinkName")
        rs("menulink") = Request.Form("NewFile")
       
        rs.Update
        rs.Close
   
        set rs = nothing
        conn.close
        set conn = nothing
       
        Response.Redirect("admMenuSettings.asp")
%>

Men får følgende fejl når jeg prøver at køre det:

Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
[Microsoft][ODBC Microsoft Access-driver] Der er for få parametre. Der var ventet 1.

Her nevises så til linie :
rs.Open "SELECT * FROM menu_config WHERE id=0", conn,1,3

Men jeg kan nu ikke se at der er nogen galt, da jeg køre en anden side med samme instillinger uden problemmer...

anyone?
Avatar billede medions Nybegynder
25. juli 2003 - 16:14 #1
<%
    If Request.Form("MenuSettingsNewUpdate") = "Submit" Then

        Response.Clear()

        Set conn = Server.CreateObject("ADODB.Connection")
        set rs = server.CreateObject("ADODB.Recordset")
        DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
        DSN = DSN & "DBQ=" & Server.MapPath(strDBDirConfig)
        Conn.Open DSN

        rs.Open "SELECT * FROM menu_config", conn,1,3
        rs.AddNew
       
        rs("succession") = Request.Form("NewSuccession")
        rs("menulinkname") = Request.Form("NewLinkName")
        rs("menulink") = Request.Form("NewFile")
       
        rs.Update
        rs.Close
   
        set rs = nothing
        conn.close
        set conn = nothing
       
        Response.Redirect("admMenuSettings.asp")
%>

//>Rune
Avatar billede eagleeye Praktikant
25. juli 2003 - 16:15 #2
Typisk betyder fejlen at et kolonnenavn er stavet forkert, er du sikker på kolonne hedder id og ikke eksvis menu_id ??

Eller så prøv at sætte[] omrkring det kan også nogle gange hjælpe:

rs.Open "SELECT * FROM [menu_config] WHERE [id]=0", conn,1,3
Avatar billede medions Nybegynder
25. juli 2003 - 16:15 #3
Det er hvis du skal indsætte en record, hvis du skal updatere en skal du gøre sådan her:

<%
    If Request.Form("MenuSettingsNewUpdate") = "Submit" Then

        Response.Clear()

        Set conn = Server.CreateObject("ADODB.Connection")
        set rs = server.CreateObject("ADODB.Recordset")
        DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
        DSN = DSN & "DBQ=" & Server.MapPath(strDBDirConfig)
        Conn.Open DSN

        rs.Open "SELECT * FROM menu_config WHERE id=0", conn,1,3
       
        rs("succession") = Request.Form("NewSuccession")
        rs("menulinkname") = Request.Form("NewLinkName")
        rs("menulink") = Request.Form("NewFile")
       
        rs.Update
        rs.Close
   
        set rs = nothing
        conn.close
        set conn = nothing
       
        Response.Redirect("admMenuSettings.asp")
%>

//>Rune
Avatar billede eagleeye Praktikant
25. juli 2003 - 16:16 #4
Man bruger id=0 for ikke at hendet alle poster bare for at ligge en ny i med AddNew...
Avatar billede medions Nybegynder
25. juli 2003 - 16:19 #5
Anders, skriver du lige det indlæg på dansk oxo? :-D

//>Rune
Avatar billede eagleeye Praktikant
25. juli 2003 - 16:23 #6
Hvis man har dette kode og man har 5000 poster vil den hendte alle 5000 poster selvom det enste man vil er at tilføje en ny post:
        rs.Open "SELECT * FROM menu_config", conn,1,3
        rs.AddNew

Derfor bruger man WHERE id=0. (autonummer kolonnenanvet = 0) da den record ikke findes. Så man får et tomt recordset og dermed også mindre belastene for serveren:
        rs.Open "SELECT * FROM menu_config WHERE id=0", conn,1,3
        rs.AddNew
Avatar billede eagleeye Praktikant
25. juli 2003 - 16:25 #7
Var det dansk? ;O
Avatar billede medions Nybegynder
25. juli 2003 - 18:23 #8
*G* ok Anders, det var til at forstå ;o)

//>Rune
Avatar billede desd Nybegynder
25. juli 2003 - 18:28 #9
Sorry, var lige væk fra skærmen lidt tid...

Takker folkens, det virker sq nu her! Kanon service! :-)
Avatar billede eagleeye Praktikant
25. juli 2003 - 18:32 #10
Hvilket svar brugte du?
Avatar billede desd Nybegynder
26. juli 2003 - 22:57 #11
Medions - 25/07-2003 16:14:39
Avatar billede eagleeye Praktikant
26. juli 2003 - 23:00 #12
Så må jeg henvise til min kommentar 25/07-2003 16:23:38

Det svare til at hvis man opretter et spørgsmål på eksperten så hender den alle 370000 spørgsmål fra databsen for at tilføje et nyt. Istedet for bare at tilføje et nyt. Det sluger en masse resursor fra serveren.
Avatar billede desd Nybegynder
27. juli 2003 - 00:06 #13
ok, det er jeg helt enig i. Men søgningen er vist ved at blive indexeret nu her eller noget i den retning. Fik ikke nogle poster tilbage da jeg søgte, prøvede skam også på det først.
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