webForumDet fria alternativet

INNER JOIN - Fel: 80040e14

7 svar · 257 visningar · startad av Del Pero

Del PeroMedlem sedan feb. 20003 785 inlägg
#1

Jag har problem med denna koden:

	strSQL = "SELECT " & strDbTable & "Author.*, " & strDbTable & "Thread.*, " & strDbTable & "Group.Name "
	strSQL = strSQL & "FROM " & strDbTable & "Author, " & strDbTable & "Group "
	strSQL = strSQL & "INNER JOIN " & strDbTable & "Thread ON " & strDbTable & "Thread.Author_ID = " & strDbTable & "Author.Author_ID "
	strSQL = strSQL & "WHERE " & strDbTable & "Author.Group_ID = " & strDbTable & "Group.Group_ID AND " & strDbTable & "Thread.IP_addr Like '" & strSearchCriteria & "' "
	strSQL = strSQL & "ORDER BY " & strDbTable & "Author." & strSortBy & ";"

Jag får följande felmeddelande: 80040e14.

Användaren ska kunna söka på ett IP-adress(strSearchCriteria). IP-adresserna (IP_addr) lagras i tabellen tblThread där även inläggskaparens ID finns (Author_ID) finns lagrat. Jag vill koppla ihop användarens ID från tblAuthor med det i tblThread för att sedan presentera sölresultatet.
(Variabeln strDbTable har värdet "tbl".)

Hur får jag det att fungera? :)

LarsGMedlem sedan dec. 200012 464 inlägg
#2

Får du inte ut någon feltext? (Är inte 80040e14 en felkod från vb-script ?)

Vad får strSQL för värde?

Att använda strDbTable är bara förvirrande.

Del PeroMedlem sedan feb. 20003 785 inlägg
#3

Jag får följande feltext:
error '80040e14'

/forum/jk/admin/select_members.asp, line 245

SQL-koden ser ut såhär:

SELECT tblAuthor.*, tblThread.*, tblGroup.Name 
FROM tblAuthor, tblGroup INNER JOIN tblThread 
ON tblThread.Author_ID = tblAuthor.Author_ID 
WHERE tblAuthor.Group_ID = tblGroup.Group_ID 
AND tblThread.IP_addr = '192.168.0.1' 
ORDER BY tblAuthor.Username ASC;

Jag ska kanske tillägga att jag kör MS SQL Server.

Del PeroMedlem sedan feb. 20003 785 inlägg
#4

Detta är vad MSDN säger om felmeddelandet:

DB_E_ERRORSINCOMMAND
80040E14

The command text contained one or more errors— typically a syntax error or unexpected keyword. The error string should contain the unexpected token.

LarsGMedlem sedan dec. 200012 464 inlägg
#5

Det är inget fel i den frågan (i alla fall inte enligt ANSI SQL).

Kanske SQL server har någon begränsning att man inte kan blanda i from-listan

SELECT tblAuthor.*, tblThread.*, tblGroup.Name 
FROM tblAuthor inner join tblGroup 
on tblAuthor.Group_ID = tblGroup.Group_ID 
INNER JOIN tblThread 
ON tblThread.Author_ID = tblAuthor.Author_ID 
where tblThread.IP_addr = '192.168.0.1' 
ORDER BY tblAuthor.Username ASC
Del PeroMedlem sedan feb. 20003 785 inlägg
#6

Tack! :D

Den koden fungerar utmärkt, men:
Nu skriver den ut en rad för varje gång den IP-adressen använts.

Jag tror inte att jag varit tydlig nog. :)
Syftet med den här funktionen är att användaren ska kunna söka på en IP-adress och det ska resultera i att de medlemmar som använt den IP-adressen skrivs ut en gång. Vad som jag vill få fram är alltså vilka användare som använt den IP-adressen och inte, som det är nu, de fall där IP-adressen använts.

Hur skriver jag om SQL-frågan? :)

LarsGMedlem sedan dec. 200012 464 inlägg
#7

Så, informationen from tblThread är irrelevant?

SELECT tblAuthor.*, tblGroup.Name 
FROM tblAuthor inner join tblGroup 
on tblAuthor.Group_ID = tblGroup.Group_ID 
where tblAuthor.Author_ID in (
select tblThread.Author_ID 
from tblThread 
where tblThread.IP_addr = '192.168.0.1' )
ORDER BY tblAuthor.Username ASC
Del PeroMedlem sedan feb. 20003 785 inlägg
#8

Tack!

Du räddar min kväll. :)

123 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
121 ms — hämta tråd, inlägg och bilagor (db)