webForumDet fria alternativet

- & error & -

3 svar · 222 visningar · startad av Nirv@na

Nirv@naMedlem sedan feb. 20014 inlägg
#1

Laddade ner wfscriptet "meddelanden", http://script.webforum.nu/wf/Forum1/HTML/000005.html Jag håller på att konfigurera den med min andra databas och får erroret:

Microsoft OLE DB Provider for ODBC Drivers fel '80004005'

[Microsoft][Drivrutin för ODBC Microsoft Access] Typblandningsfel i uttryck.

/view.asp, rad 35

<% Option Explicit %>
<%
Dim iUsr, oCn, oRs1, oRs2, sSQL

'
' Ta emot parametern user från det tidigare formuläret.
iUsr = Request.Form("user")

'
' Kolla om det är en siffra vi har fått...
If (IsNumeric(iUsr)) Then
	'
	' Konvertera till integer.
	iUsr = Cint(iUsr)
Else
	'
	' Vi har inte fått något värde skickat, och skriver ut ett felmeddelande om detta.
	Response.Write "\<b\> Inget användar-id har skickats till det här skriptet. \</b\>"
	Response.End
End If

'
' Sätt ihopp sql-frågan.
sSQL = "SELECT Meddelanande.\*, users.usrName FROM \[users\] INNER JOIN Meddelanande ON users.usrID = Meddelanande.msgFrom "
sSQL = sSQL & "WHERE (((Meddelanande.msgTo)=" & iUsr & "))"

Set oCn		= Server.CreateObject("ADODB.Connection")	' Skapa en databaskoppling.
Set oRs1	= Server.CreateObject("ADODB.Recordset")	' Skapa ett recordset.
Set oRs2	= Server.CreateObject("ADODB.Recordset")	' Vi kommer att behöva 2 st recordset.
'
' Öppna databasen med connection-objektet.
oCn.Open "driver={Microsoft Access Driver (\*.mdb)};dbq=" & Server.MapPath("databasen.mdb")
'
' Här hämtar vi meddelanderna från databasen, som sparas i oRs1.

Rad 35 nedan
oRs1.Open sSQL, oCn, 3

'
' Här hämtar vi en lista på alla användare ur databasen, som sparas i oRs2.
oRs2.Open "SELECT users.\* FROM \[users\]", oCn, 3

'
' Kolla så att vi verkligen har fått några användare i listan.
If (oRs2.Eof) Then
	'
	' Om inte så har vi ett litet problem.
	Response.Write "\<b\> Megafel! det finns inga användare i databasen. \</b\>"
	Response.End
End IF

%>
<html>
<body>
<table border="0" width="400">
<%
'
' Kolla om vi fått någonting i record-setet överhuvudtaget.
If (oRs1.Eof) Then
'
' Om inte, så meddelar vi det.
Response.Write "<tr><td> Inga meddlanden för tillfället. </td></tr>"
Else
'
' Loopa ända till slutet på recordsetet.
While Not(oRs1.Eof)
'
' Visa meddelandet.
Response.Write "<tr><td> <b> Från: </b> " & oRs1("usrName") & "</td></tr>"
Response.Write "<tr bgcolor=#E0E0E0 ><td>" & oRs1("msgText") & "</td></tr>"

				'
				' Skriv även ut ett formulär som ser till så att vi kan ta bort meddelanden.
				Response.Write "\<tr\>\<td align=right\>\<form method=post action=delete.asp \>\<input type=hidden name=usrid value=" & iUsr
				Response.Write " \>\<input type=hidden name=msgid value=" & oRs1("msgID") & " \>\<input type=submit value=kasta\>\</form\>\</td\>\</tr\>"
				
				'
				' Gå till nästa post i recordset.
				oRs1.MoveNext
			Wend

		End IF

%>
<tr><td>
<form method="post" action="send.asp">
<input type="hidden" name="id" value="<%= iUsr %>">
<b> Till: </b>
<select name="user">
<%
'
' Loopa igenom listan med användare.
While Not(oRs2.Eof)
'
' Skriv ut alla användare.
Response.Write "<option value=" & oRs2("usrID") & " >" & oRs2("usrName") & vbcrlf
'
' Gå till nästa rad i listan.
oRs2.MoveNext
Wend
%>
</select> <br>
<b> Meddelande: </b> <br>
<textarea cols="45" rows="5" name="msg"></textarea>
<input type="submit" value="Skicka...">
</form>
</td></tr><tr><td align="right">
<a href="default.asp"> logga ut... </a>
</td></tr></table>
</body>
</html>
<%
oRs2.Close ' Stäng recordset 2.
oRs1.Close ' Stäng recordset 1.
oCn.Close ' Stäng connection.
%>

Är det någon som förstår felet?

[Redigerat av Nirv@na den 08 feb 2001]

[Redigerat av Nirv@na den 08 feb 2001]

@ndersMedlem sedan juni 200026 914 inlägg
#2

nu vet jag inte vad msgTo är för datatyp i tabellen, men om den är av typen text/pm skall where-delen av select-frågan se ut så här:

sSQL = sSQL & "WHERE (((Meddelanande.msgTo)='" & iUsr & "'))"

förstår inte riktigt heller de hundra parenteserna på den raden, men de kommer väl säkerligen från rymdknarks script, så det blir väl svårt för dig att förklara. :)

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
if i'm not back in five minutes, just wait longer.</A>

yohpopsMedlem sedan feb. 20011 102 inlägg
#3

du kan inte skriva "SELECT Meddelanande.*", du måste skriva vilka fält du vill ha ut när du gör en join..

------------------
"Den som finner han hittar" {[y]}

Nirv@naMedlem sedan feb. 20014 inlägg
#4

Lyckades inte hur jag än ändrade... :(

Genererad på 381 ms · cache AV · v20260730165559-full.f96bc7eb