Avatar billede JenZen Novice
13. april 2006 - 12:45 Der er 17 kommentarer og
1 løsning

Fejl i rs fra database

Her er scriptet:
<% Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("db.mdb") %>
<% strSQL = "Select* From Tekst Where ID=Forside"
Set rs = Conn.Execute(strSQL)%>
<% Response.Write rs("HTML") %>
<% Conn.Close %>

Database info:
Access 2000 DB
1 Tabel -> Tekst
Rækker->
ID ( Tekst )
HTML ( Notat )

Her er hvad den skriver af fejl:
Microsoft OLE DB Provider for ODBC Drivers error '80040e10'

[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.

/forum/default.asp, line 5
Avatar billede Jman Praktikant
13. april 2006 - 12:51 #1
mellemrum i "select*"
Avatar billede JenZen Novice
13. april 2006 - 12:53 #2
Løste ikke noget altså:

<% strSQL = "Select * From Tekst Where ID=Forside"
Avatar billede morhan Novice
13. april 2006 - 12:56 #3
Du har glemt apostroffer rundt om Forside

strSQL = "Select * From Tekst Where ID='Forside'"
Avatar billede JenZen Novice
13. april 2006 - 13:09 #4
Man skal vist ikke kode så tidlig om morgenen, der er point klar til dig.
Avatar billede JenZen Novice
13. april 2006 - 14:20 #5
Lidt hjælp IGEN :)

<% strSQL = "Select * From Butikkerne Where ID=" & Request("Mode")
Set rs = Conn.Execute(strSQL)%><% Response.Write rs("HTML") %><% Conn.Close %>

Får dennne fejl:
Microsoft VBScript compilation error '800a0409'

Unterminated string constant

/Documents/Butikkerne/Butikkerne.asp, line 52

strSQL = "Select * From Butikkerne Where ID=" & Request("Mode")"
----------------------------------------------------------------^
Avatar billede busschou Praktikant
14. april 2006 - 08:15 #6
den siger jo hvad der er galt "unterminatet string constant" betyder du har en streng som ikke er afsluttet - og så peger den hvor :o)
Det skyldes dine gåseøjne til allersidst
strSQL = "Select * From Butikkerne Where ID=" & Request("Mode")
frem for
strSQL = "Select * From Butikkerne Where ID=" & Request("Mode")"
Avatar billede busschou Praktikant
14. april 2006 - 08:17 #7
men hvis rewuest("mode") er en streng ligesom du først skrev "forside" så skal der plinger omkring også
strSQL = "Select * From Butikkerne Where ID='" & Request("Mode") &"'"
Avatar billede JenZen Novice
14. april 2006 - 11:10 #8
Tusind tak for hjælpen.
Ved du om dette kan lade sig gøre:

Link:
Butikkerne.asp?Tabel=Butikkerne?Mode=Middelfart

Koden i ASP'en:
<% strSQL = "Select * From '" & Request("Tabel") &"' Where ID='" & Request("Mode") &"'"
Set rs = Conn.Execute(strSQL)%><% Response.Write rs("HTML") %><% Conn.Close %>
Avatar billede busschou Praktikant
14. april 2006 - 11:19 #9
ja det kan det godt men der er flere ting i det
For det første vil jeg foreslå dig altid at bruge den direkte request
Dvs i stedet for Request("Tabel") så her Request.querystring("Tabel")
Hvis du benytter Request alene så søger den alle typer igennem, dvs den søger sessions og forms og cookies osv igennem (kan ikke huske rækkefølgen)
Det er dels spild af resourcer, men du risikerer også at få problemer hvis du fx har en session som hedder "Tabel"...tager den så din querystring eller din session...

For det andet så åbner du stort op for sql injektion på den måde
Jeg ved ikke om du kender begrebet?
Men problemet er jo at folk kan skrive hvad de ønsker i browseren. Fx "drop table"...og så slettes hele din tabel
Så hvor det er muligt vil jeg foreslå dig ikke at binde en database op på input fra querystrings
Avatar billede busschou Praktikant
14. april 2006 - 11:22 #10
Afh af hvad du bruger siden til bør du overveje beskytte den imod sql injektion.
Søg evt på google ,der findes mange sider omkring emnet :O)
Hvis det bare er en for sjov privat side. og du har backup af databasen
Så gør det måske så meget, blot du er klar over problemstillingen :o)

og så ved jeg ikk om du ønskede et svar...men her er da et :o)
Avatar billede JenZen Novice
14. april 2006 - 19:07 #11
Ja, det var faktisk et rigtig godt svar, men ved du hvorfor den så melder fejl i koden ?

Link:
Butikkerne.asp?Tabel=Butikkerne?Mode=Test

Koden:
<%
Case "Test"
%>
<div align="center">
<table border="0" width="900" id="Top" cellspacing="0" cellpadding="0">
<tr><td width="100%" bgcolor="#FFFFFF" valign="top"><!--#include virtual="/Includes/Top.asp"--></td></tr>
<tr><td height="5"></td></tr>
<tr><td bgcolor="#FFFFFF" height="500"><table border="0" width="100%" id="Indhold" cellspacing="0" cellpadding="0" height="100%">
<tr><td valign="top"><table border="0" width="100%" id="table16" cellspacing="0" cellpadding="0" height="100%">
<tr><td>
<table border="0" width="100%" id="table18" cellspacing="0" cellpadding="0" height="100%">
<tr><td><table border="0" width="100%" id="table19" cellspacing="3" cellpadding="3" height="100%">
<tr><td valign="top">
<% strSQL = "Select * From '" & Request.querystring("Tabel") &"' Where ID='" & Request("Mode") &"'"
Set rs = Conn.Execute(strSQL)%><% Response.Write rs("HTML") %><% Conn.Close %>
</td></tr></table></td></tr></table></td>
<td width="5" bgcolor="#DDDDDD"></td>
<td width="225" bgcolor="#DDDDDD"><p align="center"><!--#include virtual="/Includes/QuickTilbud.asp"--></td></tr>
</table></td></tr></table></td></tr>
<tr><td height="5"></td></tr>
<tr><td bgcolor="#FFFFFF"><!--#include virtual="/Includes/Bottom.asp"--></td></tr>
</table></div></body></html>
Avatar billede busschou Praktikant
14. april 2006 - 19:23 #12
der skal selvfølgelig ikke være ' omkring tabel navnet
strSQL = "Select * From " & Request.querystring("Tabel") &" Where ID='" & Request("Mode") &"'"
Avatar billede JenZen Novice
14. april 2006 - 19:38 #13
Still no luck, kan du se hvad der er galt ?

<%
Dim mode
mode = Request.QueryString("mode")
%>
<% Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("/fpdb/DB.mdb") %>
<html>
<head>
<meta http-equiv="Content-Language" content="da">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>.:: TKFyn.dk ::.</title>
<script type="text/javascript" language="JavaScript1.2" src="/Menu/stm31.js"></script>
</head>
<LINK HREF="/Includes/CSS.css" REL="stylesheet" type="text/css">
<body bgcolor="#DDDDDD">
<%
Select Case mode
Case ""
%>
<div align="center">
<table border="0" width="900" id="Top" cellspacing="0" cellpadding="0">
<tr><td width="100%" bgcolor="#FFFFFF" valign="top"><!--#include virtual="/Includes/Top.asp"--></td></tr>
<tr><td height="5"></td></tr>
<tr><td bgcolor="#FFFFFF" height="500"><table border="0" width="100%" id="Indhold" cellspacing="0" cellpadding="0" height="100%">
<tr><td valign="top"><table border="0" width="100%" id="table16" cellspacing="0" cellpadding="0" height="100%">
<tr><td>
<table border="0" width="100%" id="table18" cellspacing="0" cellpadding="0" height="100%">
<tr><td><table border="0" width="100%" id="table19" cellspacing="3" cellpadding="3" height="100%">
<tr><td valign="top">
<% strSQL = "Select * From " & Request.querystring("Tabel") &" Where ID='" & Request("Mode") &"'"
Set rs = Conn.Execute(strSQL)%><% Response.Write rs("HTML") %><% Conn.Close %>
</td></tr></table></td></tr></table></td>
<td width="5" bgcolor="#DDDDDD"></td>
<td width="225" bgcolor="#DDDDDD"><p align="center"><!--#include virtual="/Includes/QuickTilbud.asp"--></td></tr>
</table></td></tr></table></td></tr>
<tr><td height="5"></td></tr>
<tr><td bgcolor="#FFFFFF"><!--#include virtual="/Includes/Bottom.asp"--></td></tr>
</table></div></body></html>
<%
Case "Test"
%>
<div align="center">
<table border="0" width="900" id="Top" cellspacing="0" cellpadding="0">
<tr><td width="100%" bgcolor="#FFFFFF" valign="top"><!--#include virtual="/Includes/Top.asp"--></td></tr>
<tr><td height="5"></td></tr>
<tr><td bgcolor="#FFFFFF" height="500"><table border="0" width="100%" id="Indhold" cellspacing="0" cellpadding="0" height="100%">
<tr><td valign="top"><table border="0" width="100%" id="table16" cellspacing="0" cellpadding="0" height="100%">
<tr><td>
<table border="0" width="100%" id="table18" cellspacing="0" cellpadding="0" height="100%">
<tr><td><table border="0" width="100%" id="table19" cellspacing="3" cellpadding="3" height="100%">
<tr><td valign="top">
<% strSQL = "Select * From " & Request.querystring("Tabel") &" Where ID='" & Request("Mode") &"'"
Set rs = Conn.Execute(strSQL)%><% Response.Write rs("HTML") %><% Conn.Close %>
</td></tr></table></td></tr></table></td>
<td width="5" bgcolor="#DDDDDD"></td>
<td width="225" bgcolor="#DDDDDD"><p align="center"><!--#include virtual="/Includes/QuickTilbud.asp"--></td></tr>
</table></td></tr></table></td></tr>
<tr><td height="5"></td></tr>
<tr><td bgcolor="#FFFFFF"><!--#include virtual="/Includes/Bottom.asp"--></td></tr>
</table></div></body></html>
<%End Select%>
Avatar billede busschou Praktikant
14. april 2006 - 19:41 #14
hvad giver den af fejl
Avatar billede JenZen Novice
14. april 2006 - 19:44 #15
Den kommer bare blank frem. Tror det er pga. af noget mode, tror ikke informationen fra linket Test.asp?Tabel=Butikkerne?Mode=Test kommer med.
Avatar billede busschou Praktikant
14. april 2006 - 19:49 #16
hov hov.... du har jo også 2 spørgsmålstegn
Det må du ikke have. Der kan altid kun være eet
Dernæst adskiller man med &
Test.asp?Tabel=Butikkerne&Mode=Test
Avatar billede JenZen Novice
14. april 2006 - 19:53 #17
YYYYYYYYESSS SIR....

100% Tak
Avatar billede busschou Praktikant
14. april 2006 - 20:00 #18
det var så lidt da :o)
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