Avatar billede gommasch Nybegynder
11. juli 2004 - 11:36 Der er 7 kommentarer og
1 løsning

Intet resultat fra databasesøgning

Hej

Jeg har lavet en Select streng som virker fint med Frontpage. Nu har jeg forsøgt at oversætte den til ASP men uden den finder nogle poster. Jeg får "Intet fundet !" hver gang.
Kan nogen se hvor fejlen ligger ?

<%
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("/database/hovedmenu.mdb")
Set myCon = Server.CreateObject("ADODB.Connection")
myCon.Open strDSN

SQL = "SELECT (SELECT varenavn  FROM produkter WHERE varenr=kabinet) AS Kabinet, (SELECT pris  FROM produkter where varenr=kabinet) AS Priskabinet, (SELECT pris FROM produkter WHERE varenr=xkabinet) AS Prisxkabinet, (SELECT Varenr FROM produkter where varenr=kabinet) AS Varenrkabinet FROM Produkter INNER JOIN Config ON Produkter.Varenr=Config.Varenr WHERE Config.Varenr='::Varenr::' AND (SELECT webstatus FROM produkter WHERE varenr=kabinet)='www'"

Set rs = mycon.Execute(SQL)

If not (rs.BOF or rs.EOF) Then

Do while not rs.EOF
Response.Write rs("Kabinet")
rs.movenext
loop

Else

Response.write "Intet fundet !"

End if
%>
Avatar billede eagleeye Praktikant
11. juli 2004 - 15:49 #1
Er det hele koden?
indeholder kolonnen Config.Varenr  ::Varenr:: ?
Avatar billede gommasch Nybegynder
11. juli 2004 - 15:59 #2
Databasen Hovedmenu har en tabel Config, Config-tabellen har en kolonne Varenr.
::Varenr:: er det varenr som sendes fra en anden ASP-side.
Select sætningen er nøjagtig som den forekommer fra Frontpage og som virker der.

Jeg har ændret koden en smule med samme resultat:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Kabinet</title>
</head>
<body>

<%
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("/database/hovedmenu.mdb")
Set myCon = Server.CreateObject("ADODB.Connection")
myCon.Open strDSN

SQL = "SELECT (SELECT varenavn  FROM produkter WHERE varenr=kabinet) AS Kabinet, (SELECT pris  FROM produkter where varenr=kabinet) AS Priskabinet, (SELECT pris FROM produkter WHERE varenr=xkabinet) AS Prisxkabinet, (SELECT Varenr FROM produkter where varenr=kabinet) AS Varenrkabinet FROM Produkter INNER JOIN Config ON Produkter.Varenr=Config.Varenr WHERE Config.Varenr='::Varenr::' AND (SELECT webstatus FROM produkter WHERE varenr=kabinet)='www'"

Set rs = mycon.Execute(SQL)

If not (rs.BOF or rs.EOF) Then

Do while not rs.EOF
Response.Write rs("Kabinet")
rs.movenext
loop

Else

Response.write "Intet fundet !"

End if
%>

</body>
</html>
Avatar billede eagleeye Praktikant
11. juli 2004 - 21:38 #3
hvis varenr kommer fra en anden side skal man hente det med Request("varenr") og ligget det i en variable sådan her og SQL sætningen skal rettes som vist:


Varenr = Request("varenr")

SQL = "SELECT (SELECT varenavn  FROM produkter WHERE varenr=kabinet) AS Kabinet, (SELECT pris  FROM produkter where varenr=kabinet) AS Priskabinet, (SELECT pris FROM produkter WHERE varenr=xkabinet) AS Prisxkabinet, (SELECT Varenr FROM produkter where varenr=kabinet) AS Varenrkabinet FROM Produkter INNER JOIN Config ON Produkter.Varenr=Config.Varenr WHERE Config.Varenr=" & Varenr & " AND (SELECT webstatus FROM produkter WHERE varenr=kabinet)='www'"
Avatar billede gommasch Nybegynder
11. juli 2004 - 21:55 #4
Med tilretningerne:

<%
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("/database/hovedmenu.mdb")
Set myCon = Server.CreateObject("ADODB.Connection")
myCon.Open strDSN

Varenr = Request("varenr")

SQL = "SELECT (SELECT varenavn  FROM produkter WHERE varenr=kabinet) AS Kabinet, (SELECT pris  FROM produkter where varenr=kabinet) AS Priskabinet, (SELECT pris FROM produkter WHERE varenr=xkabinet) AS Prisxkabinet, (SELECT Varenr FROM produkter where varenr=kabinet) AS Varenrkabinet FROM Produkter INNER JOIN Config ON Produkter.Varenr=Config.Varenr WHERE Config.Varenr=" & Varenr & " AND (SELECT webstatus FROM produkter WHERE varenr=kabinet)='www'"

Set rs = mycon.Execute(SQL)

If not (rs.BOF or rs.EOF) Then

Do while not rs.EOF
Response.Write rs("Kabinet")
rs.movenext
loop

Else

Response.write "Intet fundet !"

End if
%>

Får jeg nu følgende fejl:

Får nu følgende fejl:

Microsoft OLE DB Provider for ODBC Drivers error '80040e10'
[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 3.
/configframe.asp, line 19
Avatar billede eagleeye Praktikant
11. juli 2004 - 22:25 #5
Det er en stor SQL sætning hvad er de forskellige varialbe du bruge, kabinet og xkabinet?
Avatar billede gommasch Nybegynder
11. juli 2004 - 23:54 #6
Den skal faktisk bruges som konfigurator af PC'ere, tilvalg af ekstra udstyr. De varenumre jeg indtaster i tabellen Config skal dukke op i nogle dropdown bokse, RAM, harddiske osv. ::Varenr:: skal så bestemme hvilke opgraderinger vil være tilgængelige for den viste PC.
Kan endnu ikke helt overskue forløbet, men xkabinet er f.eks. standard kabinettet og kabinet er så andre tilgængelige kabinetter som opgraderingsmuligheder. Prisforskellen skal derfor kunne udregnes og sendes til min eksisterende shopcart sammen med antal (altid 1), varenummer og varenavn.

Måske skal det gribes helt anderledes an ?

Den eksisterende shopcart modtager 4 variabler fra en <form>. Quantity, Price, Varenr og Varenavn.
Så hvis jeg kunne få denne konfigurationsside til det også kan jeg måske slippe for at kode shopcarten om ?
Avatar billede gommasch Nybegynder
12. juli 2004 - 12:20 #7
Hej Eagleeye

Du ledte godt på vej. Der skulle bare lige et par '' om " & Varenr & " - så var den der.
Smid et svar så får du nogle hurtige points.

Varenr = Request("varenr")

SQL = "SELECT (SELECT varenavn  FROM produkter WHERE varenr=kabinet) AS Kabinet, (SELECT pris  FROM produkter where varenr=kabinet) AS Priskabinet, (SELECT pris FROM produkter WHERE varenr=xkabinet) AS Prisxkabinet, (SELECT Varenr FROM produkter where varenr=kabinet) AS Varenrkabinet FROM Produkter INNER JOIN Config ON Produkter.Varenr=Config.Varenr WHERE Config.Varenr='" & Varenr & "' AND (SELECT webstatus FROM produkter WHERE varenr=kabinet)='www'"
Avatar billede eagleeye Praktikant
12. juli 2004 - 15:41 #8
Ok det lyder godt :)
Her et svar.
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