Avatar billede lars-k Nybegynder
18. november 2000 - 11:37 Der er 10 kommentarer og
1 løsning

SQL-forespørgsel i ASP - jeg er meget grøn på dette område!

Jeg går snart...... I nedenstående kode skal et logon og et password kontrolleres med eksisterende logon/password i en database. Det virker ikke og jeg får meddelsen:

Microsoft JET Database Engine fejl \'80040e14\'

Der er en syntaksfejl i FROM-delsætningen.

/login.asp, linje 18


Kode:

<% @language=JavaScript %>



<%
  Connection = Server.CreateObject(\"ADODB.Connection\");
  strConn = \"Provider=Microsoft.Jet.OLEDB.4.0; Data Source =\" + Server.MapPath(\"/cobi.mdb\");
  Connection.Open(strConn);
%>

<head>
    <title>COBI - Leverand&oslash;rsider</title>

</head>


<%
res=Connection.Execute(\"SELECT * FROM Password WHERE Kodeord=\'\"+Request.Form(\"Kodeord\")+\"\' AND                        Leverandoer=\'\"+Request.Form(\"Leverandoer\")+\"\'\");

  if (!res.EOF) { // hvis indtastede data findes i db
      Response.Redirect(\"hjem.asp\");
}
%>


<body>

<table>
<td>

<h1>Fejl</h1>
Det var ikke muligt at logge dig p&aring; med de indtastede oplysninger. Hvis du er en registreret
leverand&oslash;r, kan du pr&oslash;ve at logge ind <a href=index.asp>igen</a>.

</td>
</table>
</body>
</html>


Hjælp vil være fantastisk

Lars-k

Avatar billede stigc Nybegynder
18. november 2000 - 12:36 #1
du må ikke lave mellemrun eller linieskift!


sql = \"SELECT * FROM Password WHERE Kodeord=\'\" & Request.Form(\"Kodeord\") & \"\' AND Leverandoer=\'\" & Request.Form(\"Leverandoer\") & \"\'\");

res=Connection.Execute(sql)


Avatar billede ddn Nybegynder
18. november 2000 - 12:38 #2
Hvad med :

Sql = \"SELECT * FROM Password WHERE (Kodeord=\'\" & Request.Form(\"kodeord\") & \"\')\" & \" AND (Leverandoer= \'\" & Request.Form(\"Leverandoer\") & \"\');\"

Det skulle virke
Avatar billede lars-k Nybegynder
18. november 2000 - 17:42 #3
Til stigc

Tak for forslaget, men nu får jeg fejlen:

Microsoft JET Database Engine fejl \'80040e14\'

Det er en ugyldig SQL-sætning. \"DELETE\", \"INSERT\", \"PROCEDURE\",\"SELECT\" eller \"UPDATE\" var ventet.

/login.asp, linje 19

Jeg har rodet lidt med det, men ikke fundet fejlen. Forslaget fra ddn virker heller ikke - tak alligevel.

Lars-k
Avatar billede stigc Nybegynder
18. november 2000 - 17:47 #4



sql = \"SELECT * FROM Password WHERE Kodeord=\'\" & Request.Form(\"Kodeord\") & \"\' AND Leverandoer=\'\" & Request.Form(\"Leverandoer\") & \"\'\"
Avatar billede erikjacobsen Ekspert
18. november 2000 - 18:41 #5
Det er nok linieskiftet, men når du bruger JavaScript skal du have + i stedet for &.
Avatar billede lars-k Nybegynder
19. november 2000 - 11:25 #6
Ja, tiden går hurtig, når man har det sjovt.....

Lige et lille stykke af koden, som den tager sig ud nu:

sql = \"SELECT * FROM password WHERE kodeord=\'\" + Request.Form(\"kodeord\") + \"\' AND leverandoer=\'\" + Request.Form(\"leverandoer\") + \"\'\"
 
res=Connection.Execute(sql);

  if (!res.EOF) { // hvis indtastede data findes i db
                Response.Redirect(\"hjem.asp\");
                }

Jeg har prøvet med parenteser, semikolon osv.. Jeg er bare minus-ørn til det her. Fejlen lyder:

Microsoft JET Database Engine fejl \'80040e14\'

Der er en syntaksfejl i FROM-delsætningen.

/login.asp, linje 21


Hvor er den syntaksfejl lige. Jeg har kontrolleret tegntyper i databasen, på formen osv..

Hjælp vi være guld. Tak til stigc og erikjacobsen - men det virker endnu ikke.

Lars-k

Avatar billede ddn Nybegynder
19. november 2000 - 12:01 #7
Her du prøvet at lave det i VBScript istedet for ??

Prøv at fjerne din <% @language=JavaScript %>

og brug

Sql = \"SELECT * FROM Password WHERE (Kodeord=\'\" & Request.Form(\"kodeord\") & \"\')\" & \" AND (Leverandoer= \'\" & Request.Form(\"Leverandoer\") & \"\');\"


Virker det så ???
Avatar billede ddn Nybegynder
19. november 2000 - 12:05 #8
strConn = \"Driver={Microsoft Access Driver (*.mdb)}; DBQ=\" & Server.MapPath(\"cobi.mdb\")

Set objRS = Server.CreateObject(\"ADODB.RecordSet\")

strQ = \"SELECT * FROM Password WHERE (Kodeord=\'\" & Request.Form(\"kodeord\") & \"\')\" & _
            \" AND (Leverandoer = \'\" & Request.Form(\"Leverandoer\") & \"\');\"

objRS.Open strQ, strConn

If objRS.EOF Then

o.s.v.

Avatar billede lars-k Nybegynder
19. november 2000 - 13:47 #9
Til ddn.

For s.... det virker jo!

....men, jeg kommer bare ikke ind på min startside(hjem.asp). Kan du fortælle mig det, så er point\'ene dine (det er de vist alligevel)

Kode:

<% @language=VBScript %>

<%
strConn = \"Driver={Microsoft Access Driver (*.mdb)}; DBQ=\" & Server.MapPath(\"cowi.mdb\")

Set objRS=Server.CreateObject(\"ADODB.Recordset\")
%>

<head>
    <title>COWI - Leverand&oslash;rsider</title>
</head>

<%
strQ = \"SELECT * FROM Password WHERE (kodeord=\'\"&Request.Form(\"kodeord\")&\"\') AND (leverandoer = \'\"&Request.Form(\"leverandoer\")&\"\');\"

objRS.Open strQ, strConn

If objRS.EOF then
  Response.Redirect(\"hjem.asp\")
End if
%>


<body>

<table>
<td>

<h1>Fejl</h1>
Det var ikke muligt at logge dig p&aring; med de indtastede oplysninger. Hvis du er en registreret
leverand&oslash;r, kan du pr&oslash;ve at logge ind <a href=index.asp>igen</a>.

</td>
</table>
</body>
</html>

Og hvad angående scriptsprog. Jeg har ligesom fornemmelsen af, at alle bruger VB. Har du en mening?

En taknemmelig Lars-k.
Avatar billede ddn Nybegynder
19. november 2000 - 16:25 #10
byt rundt på argumenterne så er den der :

If objRS.EOF Then
\'bruger ikke fundet
Else
\'bruger fundet
End If

Med hensyn til JavaScript kontra VBScript så tror jeg det er en smagssag. Hvis du ikke har den store erfaring med scriptsprog vil jeg klart anbefale dig at bruge VBScript.
Nogle hævder også at det er det bedste sprog til ASP, men som sagt mener jeg at det er en smagssag.
Jeg personligt foretrækker VBScript men det hænger nok en del sammen med at jeg programmerer en del i Visual Basic.

DDN
Avatar billede lars-k Nybegynder
21. november 2000 - 08:04 #11
Til ddn

Mange tak for hjælpen - her får du så lige dine point. Måske skulle jeg selv konvertere til VBscript, da jeg selv programmerer i VB. Så hvorfor jeg er startet med Javascript ved jeg egentlig ikke....

Lars-k
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