Avatar billede zeusdk Nybegynder
24. marts 2002 - 14:42 Der er 17 kommentarer og
2 løsninger

db-connection

Hej

*Det skal lige siges, at jeg er begynder på database-området*

Jeg er ved at lave et script, hvor en bruger sletter sin tilmelding til mit nyhedsbrev, men der opstår en fejl. Jeg aner ikke om nedenstående kode er korrekt - kan du udbygge koden, så det virker?

FEJL:
invalid character
mail/frameld.asp, line 11, column 3
try{
--^

KODE:
<%
dim strConnMail
strConnMail = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("../databaser/nyhedsbreve.mdb")

    try{
        if(strConnMail.Execute("DELETE FROM ABONNENT WHERE ABO_EMAIL = " & Request.Form('email'))){
            throw true;
        }
    }
    catch(e){
        if(e!=true){
        response.write "Fejl"
        }
    }
%>
Avatar billede Slettet bruger
24. marts 2002 - 14:49 #1
Hvad står der i linie 11 i frameld.asp?
Avatar billede Slettet bruger
24. marts 2002 - 14:55 #2
Hvad med
***************************
if Request.ServerVariables("REQUEST_METHOD") = "POST" then
strSQL = "DELETE FROM ABONNENT WHERE ABO_EMAIL = " & Request.Form(email)"
Conn.execute(strSQL)
***************************
Avatar billede Slettet bruger
24. marts 2002 - 15:00 #3
***************************
if Request.ServerVariables("REQUEST_METHOD") = "POST" then
MAIL = Request.Form("email")
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("../databaser/nyhedsbreve.mdb")
strSQL = "DELETE FROM ABONNENT WHERE ABO_EMAIL = " & MAIL & ""
set rs = Conn.execute(strSQL)
End If
***************************
Avatar billede coltau Juniormester
24. marts 2002 - 15:07 #4
Du mangler sikkert denne linie øverst i koden.

<% @ Language=JScript%>

Den skal altid være allerførste linie i kode der skives i JScript
Avatar billede zeusdk Nybegynder
24. marts 2002 - 15:21 #5
Error Type:
Active Server Pages, ASP 0221 (0x80004005)
The specified 'dim strConnMail strConnMail = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("../databaser/nyhedsbreve.mdb") ' option is unknown or invalid.
/sharedanmark/test/mail/frameld.asp, line 3


<% @ Language=JScript

dim strConnMail
strConnMail = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("../databaser/nyhedsbreve.mdb")
%>

<head>
<meta http-equiv="Content-Language" content="da">
</head>

<body background="../billeder/bgfirkant.gif">

<%
if Request.ServerVariables("REQUEST_METHOD") = "POST" then
MAIL = Request.Form("email")
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("../databaser/nyhedsbreve.mdb")
strSQL = "DELETE FROM ABONNENT WHERE ABO_EMAIL = " & MAIL & ""
set rs = Conn.execute(strSQL)
End If

%>

</body>
</html>
Avatar billede zeusdk Nybegynder
24. marts 2002 - 15:24 #6
UPS - disse linier skulle ikke med:

dim strConnMail
strConnMail = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("../databaser/nyhedsbreve.mdb")

Men nu siger den:
Expected '('
/mail/frameld.asp, line 12, column 3
if Request.ServerVariables("REQUEST_METHOD") = "POST" then
--^
Avatar billede coltau Juniormester
24. marts 2002 - 15:32 #7
Du skal lige blive enig med dig selv om du vil bruge JScript eller VBScript. Man kan ikke blande det.

Enten skal du anvende den kode du viser i spørgsmålet og tilføje den linie jeg har givet dig. <% @ Language=JScript%> Husk begge <% %> i samme linie. Koden ser ud til at være ok.

ELLER du skal fjerne min linie og anvende den kode som ezolu har givet dig. Det ser ud som om det er den du arbejder på. ?
Avatar billede Slettet bruger
24. marts 2002 - 15:32 #8
zeus > Du skal ikke have både din og min kode med :o) I øvrigt er det dumt at blande VBScript og JScript - du må beslutte dig for hvilken du vil bruge.
Avatar billede zeusdk Nybegynder
24. marts 2002 - 15:36 #9
Ok, så vælger jeg VBScript.

Jeg har nu forsimplet kode, for i første omgang at få det til at virke:

<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("../databaser/nyhedsbreve.mdb")
strSQL = "DELETE FROM ABONNENT WHERE ABO_EMAIL = " & Request.Form("email") & ""
set rs = Conn.execute(strSQL)
%>

FEJL:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'ABO_EMAIL = min@emailadresse.dk'.

PS. min@emailadresse.dk findes i min database.
Avatar billede Slettet bruger
24. marts 2002 - 15:38 #10
det er fordi der skal ' rundt om tekst > Request.Form('email') i stedet for Request.Form("email")
Avatar billede coltau Juniormester
24. marts 2002 - 15:39 #11
Det ved ezolu med sikkerhed. Han ved alt om plinger. :-)
Avatar billede zeusdk Nybegynder
24. marts 2002 - 15:41 #12
Syntax error
strSQL = "DELETE FROM ABONNENT WHERE ABO_EMAIL = " & Request.Form('email') & ""
-----------------------------------------------------------------^
Avatar billede coltau Juniormester
24. marts 2002 - 15:41 #13
Hov ezolu - det var det forkerte sted. linien skal se således ud.

strSQL = "DELETE FROM ABONNENT WHERE ABO_EMAIL = '" & Request.Form("email") & "'"
Avatar billede zeusdk Nybegynder
24. marts 2002 - 15:42 #14
[Pilen skulle altså have stoppet ved ('email'), for det er her fejlen findes - tror jeg]
Avatar billede Slettet bruger
24. marts 2002 - 15:43 #15
coltau > Jeg kunne sgu heller ikke lade være med at grine lidt da jeg skrev det :o)
Avatar billede Slettet bruger
24. marts 2002 - 15:44 #16
coltau > Ja for fanden!!
Avatar billede zeusdk Nybegynder
24. marts 2002 - 15:45 #17
Det spiller. Mange tak for hjælp - min første databaseforbindelse kører nu! :-)
Avatar billede coltau Juniormester
24. marts 2002 - 15:53 #18
Et godt råd. De fleste fejl med SQL-sætninger er næsten altid syntaxfejl på grund af manglende plinger.
Avatar billede zeusdk Nybegynder
24. marts 2002 - 15:55 #19
Det vil jeg huske :-)
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