Avatar billede mortenbock Nybegynder
13. oktober 2005 - 12:40 Der er 9 kommentarer og
1 løsning

slet fra access database

Jeg skal lave et script der skal slette et indlæg i en gæste bog med id=xx

Jeg er her nu:

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

    set rs = Conn.Execute("DELETE * From gaestebogen WHERE ID = '" & Request.form("id") & "'")

    response.redirect ("rediger.asp")
   
   
rs.Close
Set rs = Nothing

Conn.Close
set Conn = Nothing
%>

Og jeg får følgende fejl:

Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][ODBC Microsoft Access-driver] Datatyperne stemmer ikke overens i kriterieudtrykket.
/guest/slet.asp, line 5


Det kunne tyde på at Request.form("id") ikke returnerer et tal, men en streng. Kan det hvordan fikser jeg det?
Avatar billede goose Nybegynder
13. oktober 2005 - 12:44 #1
Prøv med:

set rs = Conn.Execute("DELETE * From gaestebogen WHERE ID = " & Request.form("id") & "")

/Goose
Avatar billede goose Nybegynder
13. oktober 2005 - 12:46 #2
Du skal ikke have ' med hvis det er tal som ID oftest er.

Det kan være at:

set rs = Conn.Execute("DELETE * From gaestebogen WHERE ID = " & Request.form("id"))

- er mere korrekt

/Goose
Avatar billede mortenbock Nybegynder
13. oktober 2005 - 12:48 #3
Disse forslag giver denne fejl:

Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl, fordi der mangler en operator. i forespørgselsudtrykket "ID =".
/guest/slet.asp, line 5
Avatar billede mortenbock Nybegynder
13. oktober 2005 - 12:50 #4
skal måske nævne at jeg kalder scriptet frem med denne adresse:

slet.asp?id=xxx
Avatar billede goose Nybegynder
13. oktober 2005 - 12:54 #5
Jamen så har du jo intet id med i din forespørgsel, den skriver jo netop i fejlen at "ID=" , altså er der ingen ID med.

/Goose
Avatar billede goose Nybegynder
13. oktober 2005 - 12:55 #6
Hvordan ser dit link der hvor du aktiverer sletningen?

/Goose
Avatar billede mortenbock Nybegynder
13. oktober 2005 - 12:59 #7
altså. Jeg skriver i adresselinien: slet.asp?id=183

det henter så denne fil:

slet.asp:
<%
    Set Conn=Server.CreateObject("ADODB.Connection")
    Conn.Open "PROVIDER=MSDASQL;" & "DRIVER={Microsoft Access Driver (*.mdb)}; " & "DBQ=" & server.mappath("database.mdb")

    set rs = Conn.Execute("DELETE * From gaestebogen WHERE ID = " & Request.form("id") & "")   
    response.redirect ("rediger.asp")
   
rs.Close()
set rs = Nothing

Conn.Close()
set Conn = Nothing
%>


Hvad er det jeg har overset?
Avatar billede fennec Nybegynder
13. oktober 2005 - 12:59 #8
Der skal ikke * med, det er ikke nødvendigt med et recordset, og det er querystring:

conn.execute("delete from gaestebogen WHERE ID = " & Request.querystring("id"))
Avatar billede mortenbock Nybegynder
13. oktober 2005 - 13:01 #9
fennec: Vupti. det funkede.
Avatar billede fennec Nybegynder
13. oktober 2005 - 13:04 #10
no prob
.o) <-- One Eyed Jack
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