Avatar billede rejx Nybegynder
10. januar 2003 - 11:38 Der er 17 kommentarer og
1 løsning

funktion problem

Jeg har et lille problem jeg ikke kan få løst.
Når jeg bruger følgende kode, får jeg en fejl.

FEJL:
Microsoft OLE DB Provider for ODBC Drivers error '80040e07'
[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.
/sbn/nyheder.asp, line 6

SOURCE:

<!--#include file="includes/dbConn_start.asp"-->
<%
Function poster(posterID)
    Response.Write posterID
strSQL = "select CREWname from CREW WHERE ID =" & posterID
set POSTER = Conn.execute(strSQL)
poster = POSTER("CREWname")
End Function
%>
<!--#include file="includes/dbConn_end.asp"-->
<!--#include file="includes/design/start.inc"-->
<h1>Nyheder</h1>
<p>Her er de seneste 10 nyheder<br><br></p>

<!--#include file="includes/dbConn_start.asp"-->
<%
    strSQL = "select * from NEWS ORDER BY NEWSdate"
    set NEWS = Conn.execute(strSQL)

    IF NEWS.EOF THEN
    Response.Write "<p>Der er ikke postet nogen nyheder endnu.<p>"

    ELSE
    Do Until NEWS.EOF

    Response.Write "<p><b><font color=#2F4867>></font> " & NEWS("NEWSheadline") & "</b><br>"
    Response.Write NEWS("NEWSdate") & " skrevet af "
    Response.Write poster(NEWS("NEWSposter")) & "<br>"
    Response.Write NEWS("NEWStext") & "<br><hr widtn=97% height=1></p>"

    NEWS.MoveNext
    Loop

    End IF
%>
<!--#include file="includes/dbConn_end.asp"-->
<!--#include file="includes/design/end.inc"-->

problemmet ligger i at variablen "PosterID" udskriver "1CREWname" isteddet for bare 1.
Avatar billede gigaload Nybegynder
10. januar 2003 - 11:43 #1
Function poster(posterID)
  Set POSTER = Conn.Execute("select CREWname from CREW WHERE ID =" & posterID)
Response.Write & POSTER
End Function
Avatar billede miknil Nybegynder
10. januar 2003 - 11:44 #2
vbScript er ikke case sensitivt, går det så ikke galt
at dit variabelnavn(POSTER) kolliderer med funktionsnavnet (poster) ?

Prøv evt. at ændre set POSTER til set POSTER_RS og
poster = POSTER("CREWname") til poster = POSTER_RS("CREWname")

Mik




Function poster(posterID)
    Response.Write posterID
strSQL = "select CREWname from CREW WHERE ID =" & posterID
set POSTER = Conn.execute(strSQL)
poster = POSTER("CREWname")
End Function
Avatar billede gigaload Nybegynder
10. januar 2003 - 11:45 #3
Function poster(posterID)
    Response.Write posterID
strSQL = "select CREWname from CREW WHERE ID =" & posterID
set POSTER1 = Conn.execute(strSQL)
poster = POSTER("CREWname")
End Function
Avatar billede miknil Nybegynder
10. januar 2003 - 11:45 #4
UPS! Jeg fik pastet din originale funktion med, ikke meningen :-)
Avatar billede dgivoni Nybegynder
10. januar 2003 - 11:46 #5
PosterId kommer jo direkte fra et felt i databasen "Newsposter" men du sammenligner det med id-feltet. Proev med:
Response.Write poster(NEWS("ID")) & "<br>"
Avatar billede gigaload Nybegynder
10. januar 2003 - 11:46 #6
Jeg tor denne virker...

Function poster(posterID)
  Set POSTER1 = Conn.Execute("select CREWname from CREW WHERE ID =" & posterID)
Response.Write & POSTER1
End Function
Avatar billede miknil Nybegynder
10. januar 2003 - 11:47 #7
Det skulle have været noget i stil med

Function poster(posterID)
  Response.Write posterID
  strSQL = "select CREWname from CREW WHERE ID =" & posterID
  set POSTER_RS = Conn.execute(strSQL)
  poster = POSTER_RS("CREWname")
End Function

Mik
Avatar billede gigaload Nybegynder
10. januar 2003 - 11:47 #8
Ups... kom til at give 3 forskellige svar... prøv den sidste.. mener den skulle virke...
Avatar billede dgivoni Nybegynder
10. januar 2003 - 11:48 #9
miknil>> hvis man saetter noget til funktionsnavnet inde i en funktion saa svarer det til at definere hvad funktionen returnerer der hvor den bliver kaldt fra...
Avatar billede rejx Nybegynder
10. januar 2003 - 11:49 #10
hmm, ingen af svarene virker.. desvære.

variablen posterID er stadig "1CREWname"
Avatar billede dgivoni Nybegynder
10. januar 2003 - 11:49 #11
miknil sorry, du har ret...
Avatar billede rejx Nybegynder
10. januar 2003 - 11:50 #12
ups der kom lige nogle svar mens jeg skrev... miknil, dit sidste eksempel virker :) takker
Avatar billede dgivoni Nybegynder
10. januar 2003 - 11:50 #13
proev dette:

<!--#include file="includes/dbConn_start.asp"-->
<%
Function poster(posterID)
    Response.Write posterID
strSQL = "select CREWname from CREW WHERE ID =" & posterID
set POSTER_RS = Conn.execute(strSQL)
poster = POSTER_RS("CREWname")
End Function
%>
<!--#include file="includes/dbConn_end.asp"-->
<!--#include file="includes/design/start.inc"-->
<h1>Nyheder</h1>
<p>Her er de seneste 10 nyheder<br><br></p>

<!--#include file="includes/dbConn_start.asp"-->
<%
    strSQL = "select * from NEWS ORDER BY NEWSdate"
    set NEWS = Conn.execute(strSQL)

    IF NEWS.EOF THEN
    Response.Write "<p>Der er ikke postet nogen nyheder endnu.<p>"

    ELSE
    Do Until NEWS.EOF

    Response.Write "<p><b><font color=#2F4867>></font> " & NEWS("NEWSheadline") & "</b><br>"
    Response.Write NEWS("NEWSdate") & " skrevet af "
    Response.Write poster(NEWS("ID")) & "<br>"
    Response.Write NEWS("NEWStext") & "<br><hr widtn=97% height=1></p>"

    NEWS.MoveNext
    Loop

    End IF
%>
<!--#include file="includes/dbConn_end.asp"-->
<!--#include file="includes/design/end.inc"-->
Avatar billede rejx Nybegynder
10. januar 2003 - 11:52 #14
miknil --> smider du lige et svar? :)
Avatar billede miknil Nybegynder
10. januar 2003 - 11:52 #15
>> dgivoni
Det er jeg klar over men hvordan ville du som case insensitiv vbScript fortolker opfatte


function poster(posterID)
poster = POSTER("CREWname")

sæt den implicitte finktions variabel poster til et kald til funktionen poster med "CREWName som posterID parameteren ???

Hvilket jo er en uendelig rekursiv løkke

Mik
Avatar billede miknil Nybegynder
10. januar 2003 - 11:53 #16
Svar
Avatar billede dgivoni Nybegynder
10. januar 2003 - 11:57 #17
miknil, du har (som jeg ogsaa naaede at skrive) ret. Jeg laeste ikke funktionen grundigt nok... :-)
Avatar billede miknil Nybegynder
10. januar 2003 - 12:01 #18
>> dgivoni
Det så jeg, men først da jeg havde postet mit indlæg :-)

Tak for pointsene, og ha en god weekend allesammen.

mik
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