Link to home
Start Free TrialLog in
Avatar of lrdchelp
lrdchelpFlag for United States of America

asked on

ASP and/or SQL code puzzle

I am bringing data into an ASP Classic page from a MS SQL database .  The 3 fields to display are first_name, last_name, and proj_title.  The first and last names are joined as a single hyperlink by a function.

My problem is that when the project title field appears in the code after the full name (hyperlink), it does not display on the web page; there is no error--it just does not show up.

When I removed the hyperlink, all 3 fields display perfectly.  Also, when I put the project title field first, everything is fine (but I need it to appear after the name).

I'm attaching the code ve narrowed it down to the code at the beginning of line 44. Any help would be appreciated.

Shari

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!--#include file="../Connections/EWI.asp" -->

<%
Dim rsprojdir__MMColParam
rsprojdir__MMColParam = "62"
If (Request.QueryString("Dir_ID") <> "") Then 
  rsprojdir__MMColParam = Request.QueryString("Dir_ID")
End If
%>
<%
Dim rsprojdir
Dim rsprojdir_cmd
Dim rsprojdir_numRows

Set rsprojdir_cmd = Server.CreateObject ("ADODB.Command")
rsprojdir_cmd.ActiveConnection = MM_EWI_STRING
rsprojdir_cmd.CommandText = "SELECT * FROM dbo.DIRECTORY  INNER JOIN dbo.LINK_DIR_PROJ ON dbo.DIRECTORY.Dir_ID = dbo.LINK_DIR_PROJ.Dir_ID WHERE dbo.LINK_DIR_PROJ.Proj_ID=? ORDER BY Last_Name, First_Name" 
rsprojdir_cmd.Prepared = true
rsprojdir_cmd.Parameters.Append rsprojdir_cmd.CreateParameter("param1", 200, 1, 255, rsprojdir__MMColParam) ' adVarChar

Set rsprojdir = rsprojdir_cmd.Execute
rsprojdir_numRows = 0
%>
<%
Function MM_joinChar(firstItem)
  If (firstItem <> "") Then
    MM_joinChar = "&"
  Else
    MM_joinChar = ""
  End If
End Function
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>


<%=(rsprojdir.Fields.Item("Proj_Title").Value)%>&nbsp;<a href="../people/person-detail.asp?<%= Server.HTMLEncode(MM_keepURL) & MM_joinChar(MM_keepURL) & "Dir_ID=" & rsProjdir.Fields.Item("Dir_ID").Value %>"><%=(rsprojdir.Fields.Item("First_Name").Value)%>&nbsp;<%=(rsprojdir.Fields.Item("Last_Name").Value)%></a>

</body>
</html>
<%
rsprojdir.Close()
Set rsprojdir = Nothing
%>

Open in new window

Avatar of Guy Hengel [angelIII / a3]
Guy Hengel [angelIII / a3]
Flag of Luxembourg image

the first point to look at would be this part:

SELECT *   ... JOIN

the problem is that some column names might exist in both tables... and that will result in problems.
please replace the * by the column names you need, really, with the table name (or it's alias) so that there is no ambiguity

for example, like this (guessing which table first_name and last_name are coming from) :
rsprojdir_cmd.CommandText = "SELECT d.First_Name, d.Last_Name FROM dbo.DIRECTORY d INNER JOIN dbo.LINK_DIR_PROJ l ON d.Dir_ID = l.Dir_ID WHERE l.Proj_ID=? ORDER BY d.Last_Name, d.First_Name 

Open in new window

Is there anything goofy about that row if you look at the HTML output using the browser's View Source feature?
Avatar of lrdchelp

ASKER

This is the code in View source when the title is before the name:
GSR<a href="../people/person-detail.asp?Dir_ID=359">Meghan&nbsp;Bathgate</a>,&nbsp;

This is the code in view source with the project title after
<a href="../people/person-detail.asp?Dir_ID=359">Meghan&nbsp;Bathgate</a>&nbsp;

I do notice that the title does not appear in the code (as well as in the browser) when it follows so I'm guessing I have a code problem in that segment of code that is preventing it from displaying.  I just don't know what it is.

Shari
Even if you put it on line 45 by itself?  (so the name hyperlink remains on line 44)

Also put a literal string in that response.write to see if it is actually executing.
<%= "Title: " & (rsprojdir.Fields.Item("Proj_Title").Value) %>
angell

I fixed the code to make sure there was nio ambiguity and the recordset within Dreamweaver returned the proper values.

However, now I receive a 500 error.

Shari
ASKER CERTIFIED SOLUTION
Avatar of worthyking1
worthyking1
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Thanks all for your help.

At first I wasn't sure that Worthyking1's solution was appropriate because Dir_ID is the first record in the table, but I tried substituting a different field that was closer to Last_Name than Proj_Title was and it worked.

So I used Worthyking1's code and it worked!  Thanks so much!

Shari
I thought it was fixed, but there is one more problem.  The title only appears next to the first person's name.  It does not repeat.

Any ideas?

Shari
I figured it out.  No need to respond.