Avatar billede mkjeldsen Nybegynder
13. februar 2001 - 15:09 Der er 30 kommentarer og
2 løsninger

Hvad betyder denne fejl

Jeg får nedenstående fejl.... Hvad betyder den.

Der opstod en Microsoft VBScript-kørselsfejl fejl \'800a000d\'

Typerne passer ikke sammen

/Asp/ItemNyWeb/webshop/main1.asp, linje 50

Linie 50 ser således ud:

    <img src=\"<%=Query(\"Billede\")%>\">
Avatar billede mkjeldsen Nybegynder
13. februar 2001 - 15:11 #1
Resten af koden fra linie 1 - 50 ser således ud:

---

<%@ language = \"VBScript\" %>
<% Option Explicit%>
<!-- #include virtual=\"common/adovbs.inc\" -->
<% Session.LCID = 1030 %>



<HTML>
<HEAD>
<TITLE>main1</TITLE>

<meta name=\"autor\" name=\"Mogens Kjeldsen\">




<%
Dim Connect, Id, strSQL, strDNS, rs, ModulId, Query, QueryHoved

Set Connect = Server.CreateObject(\"ADODB.Connection\")
Set rs = Server.CreateObject(\"ADODB.Recordset\")
Connect.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & Server.MapPath(\"../database/item_ordre.mdb\")


Id = Request.QueryString (\"ModulID\")



\'Laver SQL forespørgsel til tabel
Query = \"SELECT * FROM modul, produkter Where ID = \" & ModulID & \"\"


%>



</HEAD>


<BODY bgcolor=\"white\" text=\"#005D99\" alink=\"#005D99\" vlink=\"#005D99\" link=\"#005D99\">
<br>

<% response.write ID %>

<table cellspacing=\"0\" border=\"0\" cellpadding=\"5\" width=\"100%\" align=\"center\">

<tr>
  <td colspan=\"5\" align=\"left\">
        <font size=\"1\" face=\"verdana\" color=\"#005D99\">
    <img src=\"<%=Query(\"Billede\")%>\">
  </td>
Avatar billede eagleeye Praktikant
13. februar 2001 - 15:15 #2
Hvad indeholder kolonnen \"Billede\"?
En sti eller et billede.
Avatar billede cin Nybegynder
13. februar 2001 - 15:15 #3
Du skal rette
Query = \"SELECT * FROM modul, produkter Where ID = \" & ModulID & \"\"

til
set Query = connect.execute(\"SELECT * FROM modul, produkter Where ID = \" & ModulID & \"\")
Avatar billede mkjeldsen Nybegynder
13. februar 2001 - 15:18 #4
Så får jeg denne fejl:
---
Microsoft OLE DB Provider for ODBC Drivers fejl \'80040e14\'

[Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl, fordi der mangler en operator. i forespørgselsudtrykket \"Id =\".

/Asp/ItemNyWeb/webshop/main1.asp, linje 30
Avatar billede spectual Nybegynder
13. februar 2001 - 15:18 #5
Problemet er, at 2 typer variabler ikke er ens, f.eks. passer 5 og Peter ikke sammen.

I dette tilfælde vil jeg skyde på at fejlen ligger i linjen id = request.querystring (\"ModulID\").

request.querystring (\"ModulID\") giver sikker ingenting i resultat og derved er id ikke et tal.
Avatar billede mkjeldsen Nybegynder
13. februar 2001 - 15:19 #6
<eagleeye> Kolonnen Billede er en sti
Avatar billede ldanielsen Nybegynder
13. februar 2001 - 15:19 #7
Du mangler da at åbne dit recordset:

rs.Open(Query)
(er ikke helt sikker på den syntaks, jeg gør det på en anden måde)


og så hedder det:
<img src=\"<%=rs(\"Billede\")%>\">
Avatar billede spectual Nybegynder
13. februar 2001 - 15:19 #8
Du kunne f.eks. indsætte en linje:

if id=\"\" or isnumeric (id)=false then response.write (\"ID er ikke et gyldigt tal.\"):response.end
Avatar billede spectual Nybegynder
13. februar 2001 - 15:20 #9
Den linje sætter du ind lige efter ID = request.querystring (\"ModulID\")
Avatar billede ldanielsen Nybegynder
13. februar 2001 - 15:20 #10
Jeg så ikke de andre kommentarer/svar, men brug nu bare mit :o)

Hilsen Lars
Avatar billede spectual Nybegynder
13. februar 2001 - 15:21 #11
>> Idanielsen: Så ville han få en anden fejl
Avatar billede ldanielsen Nybegynder
13. februar 2001 - 15:21 #12
Hvilken?
Avatar billede spectual Nybegynder
13. februar 2001 - 15:22 #13
Min fejl - du har ret Idanilsen
Avatar billede spectual Nybegynder
13. februar 2001 - 15:23 #14
Recordsettet skal åbnes med rs.open query,connect
og bagefter skal

image linjen ændres til <img src=\"<%=rs(\"Billede\")%>\">
Avatar billede mkjeldsen Nybegynder
13. februar 2001 - 15:30 #15
>> Idanielsen
Så får jeg denne fejl:
---
ADODB.Recordset fejl \'800a0bb9\'

Argumenterne har en forkert type eller er uden for det angivne område, eller der er opstået en konflikt mellem dem.

/Asp/ItemNyWeb/webshop/main1.asp, linje 26
Avatar billede eagleeye Praktikant
13. februar 2001 - 15:31 #16
Prøv at skrive hvilken tabel den ligger i:

<%=Query(\"modul.Billede\")%>
Eller
<%=Query(\"produkter .Billede\")%>

 
Avatar billede eagleeye Praktikant
13. februar 2001 - 15:33 #17
\"produkter .Billede\" uden mellemrum: \"produkter.Billede\"
Avatar billede mkjeldsen Nybegynder
13. februar 2001 - 15:35 #18
>>eagleeye
Det har jeg prøvet, det virkede heller ikke.
Avatar billede ldanielsen Nybegynder
13. februar 2001 - 15:36 #19
Det er din Query der er en fejl i så.
Avatar billede eagleeye Praktikant
13. februar 2001 - 15:40 #20
Efter din Query = \".......\"
skal du havde:
rs.Open Query, connect,3,3

<%=rs(\"modul.Billede\")%>
Eller
<%=rs(\"produkter .Billede\")%>

Avatar billede cin Nybegynder
13. februar 2001 - 17:06 #21
den skal ændres fra:
Query = \"SELECT * FROM modul, produkter Where ID = \" & ModulID & \"\"
til:

set Query = connect.execute(\"SELECT * FROM modul, produkter Where ID = \" & ID & \"\")
Avatar billede ldanielsen Nybegynder
13. februar 2001 - 19:49 #22
cin >> selvfølgelig, godt set! Det skal ikke være ModulID.

Men nu laver du er recordset direke, og det hedder Query.

Så kan man droppe
Set rs = Server.CreateObject(\"ADODB.Recordset\")

men skal så hente værdien sådan:
<img src=\"<%=Query(\"Billede\")%>\">
 
Avatar billede cin Nybegynder
13. februar 2001 - 22:26 #23
nej jeg laver vel egentlig en sql forespørgsel jeg bruger ikke Set rs = Server.CreateObject(\"ADODB.Recordset\")
jeg brugte den string der hedder connect. Det er den måde jeg plejer at hente ting fra databasen

egentlig kan jeg ikke se hvorfor
Set rs = Server.CreateObject(\"ADODB.Recordset\")
er lavet. den bruges jo ikke. eller gør den??
Avatar billede ldanielsen Nybegynder
13. februar 2001 - 23:59 #24
Jo, du kan vælge at lave dit recordset først, som et objekt, og så senere bruge det til hvad du vil. Man kan sige at det er den \"pæne\" måde at gøre det på.

Men conn.Execute fortæller serveren/odbc-driveren at den skal \"køre\" den sql-komando du beder om, og så regner den selv ud at det skal være et Recordset.

Hele koden:

<%@ language = \"VBScript\" %>
<% Option Explicit%>
<!-- #include virtual=\"common/adovbs.inc\" -->
<% Session.LCID = 1030 %>

<HTML>
<HEAD>
<TITLE>main1</TITLE>

<meta name=\"autor\" name=\"Mogens Kjeldsen\">

<%
Dim Connect, Id, strSQL, strDNS, Rs, ModulId, Query, QueryHoved

Set Connect = Server.CreateObject(\"ADODB.Connection\")

Connect.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & Server.MapPath(\"../database/item_ordre.mdb\")

Id = Request.QueryString (\"ModulID\")

Set Rs = Connect.Execute (\"SELECT * FROM modul, produkter Where ID = \" & Id,,AdCmdText)
%>
</HEAD>
<BODY bgcolor=\"white\" text=\"#005D99\" alink=\"#005D99\" vlink=\"#005D99\" link=\"#005D99\">
<br>

<% response.write Id %>

<table cellspacing=\"0\" border=\"0\" cellpadding=\"5\" width=\"100%\" align=\"center\">

<tr>
  <td colspan=\"5\" align=\"left\">
        <font size=\"1\" face=\"verdana\" color=\"#005D99\">
    <img src=\"<%=Rs(\"Billede\")%>\">
  </td>

Men mkjeldsen, check lige at SQL-sætningen overhovedet virker. Åbn Access, og lav en forespørgsel ud fra den SQL. Hvis den ikke virker der, så kan vi jo lige så godt give op.
Avatar billede mkjeldsen Nybegynder
14. februar 2001 - 09:05 #25
>>Idanielsen - Jeg har prøvet at lave en forespørgsel i database - den virker. Derefter har jeg ændret min sql-streng til denne:
---
Set Rs = Connect.Execute (\"SELECT Modul.ModulID AS Modul_ModulID, Modul.ModulNr, Modul.ModulTitel, Modul.Softwareproducent, Modul.SoftwareNavnVersion, Modul.EmneProgramtype, Modul.Bog, Modul.CBT, Modul.AntalFilm, Modul.PCKoerekort, Modul.StorPCKoerekort, Modul.PCBrugeruddannelsen, Modul.Beskrivelse AS Modul_Beskrivelse, Modul.DownloadOpgavefiler, Modul.DownloadIndhold, Modul.SeDemoFilm, Modul.Billede, Modul.Serie, Produkter.ProduktID, Produkter.ModulID AS Produkter_ModulID, Produkter.Varenavn, Produkter.AntalSider, Produkter.Forfatter, Produkter.ISBN, Produkter.Version, Produkter.Udgivet, Produkter.Varegruppe, Produkter.Beskrivelse AS Produkter_Beskrivelse FROM Modul INNER JOIN Produkter ON [Modul].[ModulID] =Produkter.ModulID;\")
---
Nu kan jeg igen se noget på main1, men uanset hvilken link jeg klikker på, kommer altid det samme billede, men godtnok forskellige idnr.

Parykken er allerede blevet grå, så det næste er vel at jeg bliver skallet med et sådan problem.

Mogens
Avatar billede ldanielsen Nybegynder
14. februar 2001 - 10:11 #26
Prøv:

(\"SELECT Modul.Billede AS Billede FROM Modul INNER JOIN Produkter ON Modul.ModulID = Produkter.ModulID WHERE Modul.ModulID = \"& Id,,AdCmdText)
Avatar billede cin Nybegynder
14. februar 2001 - 10:23 #27
ldanielsen << det var egentlig også det jeg havde i tankerne, men det kom åbennart ikke tydelig nok frem.
Det er sådan jeg plejer at lave en forbindelse til en DB
Avatar billede mkjeldsen Nybegynder
14. februar 2001 - 10:28 #28
>>Idanielsen...
Så får jeg en anden fejl. Det nærmeste jeg endnu er kommet, er med min egen sql-streng, men der kan jeg ikke få den til at kalde database rigtigt.
se evt dette link.
---
http://multi.mediecenter.dk/udvikler-web/mogensp/Item/ItemNyWeb/webshop/index.asp
---
Lidt forklaring - jeg er under uddannelse hos Nordjyllands Mediecenter som Web-administrator, og er lige nu i virksomhedspraktik hos ITEM-Group, hvor jeg skal fremstille en ny site.
Kan du evt. hjælpe mig med at finde fejlen, vil jeg gerne give flere point
Mogens
Avatar billede eagleeye Praktikant
14. februar 2001 - 10:38 #29
Hvad med denne:
Set Rs = Connect.Execute (\"SELECT Modul.ModulID AS Modul_ModulID, Modul.ModulNr, Modul.ModulTitel, Modul.Softwareproducent, Modul.SoftwareNavnVersion, Modul.EmneProgramtype, Modul.Bog, Modul.CBT, Modul.AntalFilm, Modul.PCKoerekort, Modul.StorPCKoerekort, Modul.PCBrugeruddannelsen, Modul.Beskrivelse AS Modul_Beskrivelse, Modul.DownloadOpgavefiler, Modul.DownloadIndhold, Modul.SeDemoFilm, Modul.Billede, Modul.Serie, Produkter.ProduktID, Produkter.ModulID AS Produkter_ModulID, Produkter.Varenavn, Produkter.AntalSider, Produkter.Forfatter, Produkter.ISBN, Produkter.Version, Produkter.Udgivet, Produkter.Varegruppe, Produkter.Beskrivelse AS Produkter_Beskrivelse FROM Modul WHERE Modul.ModulID =Produkter.ModulID;\")
Avatar billede ldanielsen Nybegynder
14. februar 2001 - 10:48 #30
Ja eagleeye, det der manglede var WHERE-kalusen
Avatar billede mkjeldsen Nybegynder
14. februar 2001 - 10:56 #31
Tak for hjælpen det virker nu med denne sql:
---
Set Rs = Connect.Execute (\"SELECT Modul.ModulID AS Modul_ModulID, Modul.ModulNr, Modul.ModulTitel, Modul.Softwareproducent, Modul.SoftwareNavnVersion, Modul.EmneProgramtype, Modul.Bog, Modul.CBT, Modul.AntalFilm, Modul.PCKoerekort, Modul.StorPCKoerekort, Modul.PCBrugeruddannelsen, Modul.Beskrivelse AS Modul_Beskrivelse, Modul.DownloadOpgavefiler, Modul.DownloadIndhold, Modul.SeDemoFilm, Modul.Billede, Modul.Serie, Produkter.ProduktID, Produkter.ModulID AS Produkter_ModulID, Produkter.Varenavn, Produkter.AntalSider, Produkter.Forfatter, Produkter.ISBN, Produkter.Version, Produkter.Udgivet, Produkter.Varegruppe, Produkter.Beskrivelse AS Produkter_Beskrivelse FROM Modul INNER JOIN Produkter ON Modul.ModulID =Produkter.ModulID WHERE (((Modul.ModulID)=\'\" & modulid & \"\'))\" )
---
Mudolid er en tekststreng, og skal derfor omkranses med \'\'

Mogens
Avatar billede ldanielsen Nybegynder
14. februar 2001 - 11:12 #32
Tak for kampen!
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