• 0

[VBScript] Displaying SQL query results from a table


Question

Hello guys,

It's great to finally join the greatness of Neowin :) I've just picked up scripting in VBScript, but I'm having a bit of a difficulty with the code below. Trying to display this ASP page shows error 500 in the browser. For the life of me I can't figure out where the problem is.

<%

<!--#include file="header.asp" --> 
<!--#include file="peopleheader.asp" -->
<BR><br>

<%   
Option Explicit
Dim objConn						' Our Connection Object
Dim objRS							' Our Recordset Object
Dim strSQL						  ' Our SQL String to access the database
Dim strConnection			 ' Our Connection string to access the database
Dim i								' a counter variable

' -- Create objects
Set objConn = Server.CreateObject("ADODB.Connection")
Set objRS = Server.CreateObject("ADODB.Recordset")

' -- Connection String Value
strConnection = "DSN=data;"

' -- Open the Connection
objConn.Open strConnection

' -- Our SQL Statement
strSQL = "SELECT * FROM Data"
' -- Populate our Recordset with data
set objRS = objConn.Execute (strSQL)


if (objRS.BOF and objRS.EOF) then
	response.write "No records found"
	response.end
End if

response.write "<TABLE BORDER='1' CELLPADDING='2' CELLSPACING='1' WIDTH='100%'>"

	' -- Output the Field Names as the first row in the table
	Response.Write "<TR BGCOLOR='"#CCCCCC"'>"
	For i = 0 to objRS.Fields.Count - 1
		Response.Write "<TH><FONT FACE='"ARIAL"' SIZE='"2"'> & objRS.Fields(i).Name & </FONT></TH>"
	Next
	Response.write "</TR>"
	' -- Now output the contents of the Recordset
	objRS.MoveFirst
	Do While Not objRS.EOF
		' -- output the contents
		Response.Write "<TR>"
		For i = 0 to objRS.Fields.Count - 1
			Response.Write "<TD><FONT FACE='"ARIAL"' SIZE='"1"'> & objRS.Fields(i) & </FONT></TD>"
		Next
		Response.write "</TR>"
		' -- move to the next record
		objRS.MoveNext
	Loop

	response.write "</table>"

	objRS.Close
	set objRS = Nothing
	objConn.Close
	set objConn = Nothing


%>
<!--#include file="footer.asp" -->
%>

If anyone is able to offer some assistance with this it will be much appreciated. I'm kind of desperate :)

Edited by vanx
Fixed thread title

9 answers to this question

Recommended Posts

  • 0

I turned off friendly error messages in both browsers but it's still showing that error 500.

Not a problem though, because I've fixed that page's problem. However, I now have an issue with the code below:

<!--#include file="header.asp" --> 
<!--#include file="peopleheader.asp" -->
<br><br>

<%   
Option Explicit
Dim objConn						' Our Connection Object
Dim objRS							' Our Recordset Object
Dim strSQL						  ' Our SQL String to access the database
Dim strConnection			 ' Our Connection string to access the database
Dim i								' a counter variable
Dim searchstr 'what we get from the form on the main page

' -- Create objects
Set objConn = Server.CreateObject("ADODB.Connection")
Set objRS = Server.CreateObject("ADODB.Recordset")

' -- Connection String Value
strConnection = "DSN=data;"

' -- Open the Connection
objConn.Open strConnection

if request.form("firstorlast")="surnamer = "where "&request.form("firstorlast")& & Request.form("lname")& if

' -- Our SQL Statement
strSQL = "SELECT * FROM Data" & searchstr
' -- Populate our Recordset with data
set objRS = objConn.Execute (strSQL)


if (objRS.BOF and objRS.EOF) then
	response.write "No records found"
	response.end
End if
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!--#include file="header.asp" --> 
<!--#include file="peopleheader.asp" -->
<BR><BR>

<HTML>
<HEAD>
	<TITLE>Testing</TITLE>
</HEAD>

<BODY>
<TABLE BORDER="1" CELLPADDING="2" CELLSPACING="1" WIDTH="100%">
<%
	' -- Output the Field Names as the first row in the table
	Response.Write "<TR BGCOLOR=""#66cccc"">"
	Response.Write "<TH>ID</TH><TH>Name</TH><TH>Surname</TH><TH>Job Title</TH><TH>Department</TH><TH>Manager</TH><TH>Location</TH><TH>Office Phone</TH><TH>Skype</TH><TH>Office Fax</TH><TH>Mobile</TH><TH>Room</TH><TH>Building</TH>"

	Response.write "</TR>"
	' -- Now output the contents of the Recordset
	objRS.MoveFirst
	Do While Not objRS.EOF
		' -- output the contents
		Response.Write "<TR>"
		For i = 0 to objRS.Fields.Count - 1
			Response.Write "<TD><FONT FACE=""ARIAL"" SIZE=""1"">" & objRS.Fields(i) & "</FONT></TD>"

		Next

		Response.write "</TR>"

		' -- move to the next record
		objRS.MoveNext

	Loop


	objRS.Close
	set objRS = Nothing
	objConn.Close
	set objConn = Nothing




 %>
</TABLE>


</BODY>
</HTML>

<!--#include file="footer.asp" -->

It shows the same error message as before. I have a feeling it has something to do with how I create a SQL query string. I need it to be composed of variables that I get from a form on another page.

Once again, all assistance is appreciated!

  • 0

searchstr = "where "&request.form("firstorlast")& & Request.form("lname")&

and

strSQL = "SELECT * FROM Data" & searchstr

will end up with "SELECT * FROM Datawhere ..."

You need a space at the end of one, or the start of the other...

  • 0

Nope, it is not working. Showing same 500 Error message. Here's the revised code for the search.asp page (I've added a space into the SQL statement as per your correction.

<!--#include file="header.asp" --> 
<!--#include file="peopleheader.asp" -->
<br><br>

<%   
Option Explicit
Dim objConn						' Our Connection Object
Dim objRS							' Our Recordset Object
Dim strSQL						  ' Our SQL String to access the database
Dim strConnection			 ' Our Connection string to access the database
Dim i								' a counter variable
Dim searchstr 'what we get from the form on the main page

' -- Create objects
Set objConn = Server.CreateObject("ADODB.Connection")
Set objRS = Server.CreateObject("ADODB.Recordset")

' -- Connection String Value
strConnection = "DSN=data;"

' -- Open the Connection
objConn.Open strConnection

if request.form("firstorlast")="surnamer = "where surname like '" & Request.form("lname")& if

' -- Our SQL Statement
strSQL = "SELECT * FROM Data " & searchstr
' -- Populate our Recordset with data
set objRS = objConn.Execute (strSQL)


if (objRS.BOF and objRS.EOF) then
	response.write "No records found"
	response.end
End if
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!--#include file="header.asp" --> 
<!--#include file="peopleheader.asp" -->
<BR><BR>

<HTML>
<HEAD>
	<TITLE>Testing</TITLE>
</HEAD>

<BODY>
Response.Write "<p>"&searchstr&"</p>"
<TABLE BORDER="1" CELLPADDING="2" CELLSPACING="1" WIDTH="100%">
<%
	' -- Output the Field Names as the first row in the table
	Response.Write "<TR BGCOLOR=""#66cccc"">"
	Response.Write "<TH>ID</TH><TH>Name</TH><TH>Surname</TH><TH>Job Title</TH><TH>Department</TH><TH>Manager</TH><TH>Location</TH><TH>Office Phone</TH><TH>Skype</TH><TH>Office Fax</TH><TH>Mobile</TH><TH>Room</TH><TH>Building</TH>"

	Response.write "</TR>"
	' -- Now output the contents of the Recordset
	objRS.MoveFirst
	Do While Not objRS.EOF
		' -- output the contents
		Response.Write "<TR>"
		For i = 0 to objRS.Fields.Count - 1
			Response.Write "<TD><FONT FACE=""ARIAL"" SIZE=""1"">" & objRS.Fields(i) & "</FONT></TD>"

		Next

		Response.write "</TR>"

		' -- move to the next record
		objRS.MoveNext

	Loop


	objRS.Close
	set objRS = Nothing
	objConn.Close
	set objConn = Nothing




 %>
</TABLE>


</BODY>
</HTML>

<!--#include file="footer.asp" -->

and here's the code for the form on main.asp that passes in a surname (testing it just with a surname to begin with) to search.asp

<FORM NAME=Form1 METHOD=Post ACTION="search.asp">;INPUT name=firstorlast type=radio VALUE="known_as">First Name
<INPUT name=firstorlast type=radio VALUE="surname">Surname
<INPUT name=firstorlast type=radio checked="Yes" VALUE="ID">ID

<INPUT TYPE=Text NAME=lname>  <INPUT TYPE=Submit VALUE="Search">
</form>

Thank you very much for your help Antaris :)

  • 0

The problem I'm encountering now is when I try to convert some fields into URLs. I use the following code (for example) :

Response.Write "<TD>" & "<a href=department.asp?id=" & objRS.Fields("DEPARTMENT") &  "'></a>" & "</TD>"

but instead it shows just white table cells and the rest of them show ok. I can't think of a place where I've gone wrong...

  • 0
  Antaris said:
You're not putting any content in the anchor tag:

<a href="{url}">{text}</a>

Thank you, here's the revised code, but using that code shifts the data cells by one to the right and the department cell remains white:

"<TD>" & "<a href=department.asp?id=" & objRS.Fields("DEPARTMENT") &  ">" & objRS.Fields("DEPARTMENT") & "</a>" & "</TD>"

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • Google Pixel 10 series tipped to debut on August 13 by Sagar Naresh Bhavsar A few days ago, Google announced a pre-launch event for Pixel Superfans in the U.K., slated for this month. The event "Pixel Penthouse" will showcase Google's upcoming devices, including the Pixel 10 series phones. A total of 25 lucky fans, whom Google refers to as Superfans, will be selected to attend a 90-minute event in London on June 27. It was expected that fans would get a glimpse at the Pixel 10 series phones and the Pixel Watch 4. Now, a reliable leaker has added fuel to the fire, suggesting that the Pixel 10 series will launch in a couple of months. According to MysteryLupin on X/Twitter, the Pixel 10 could launch on August 13. Interestingly, this also suggests that Google is sticking with the same schedule as the Pixel 9 series launch. However, it is unclear if the leaker has revealed the launch date or the date of availability. This year, Google isn't expected to introduce drastic changes to the Pixel 10 series, something that is expected out of the Apple iPhone 17 series this year. However, the Pixel 10 series will get an upgraded TSMC-made Tensor G5 chipset and MediaTek modems instead of Qualcomm's. The Pixel 10 lineup will include four models, similar to last year: Pixel 10, Pixel 10 Pro, Pixel 10 Pro XL, and the Pixel 10 Pro Fold. Leaks have hinted at a similar design to the Pixel 9 series, but they are expected to get big camera upgrades. The Google Pixel 10 series could get a "Video Generative ML" feature that would allow users to edit their videos using AI tools. The phones could also get "Sketch to Image" and "Magic Mirror" features. Tensor G5 is also reportedly a capable chipset that will support 4K @60fps HDR video, as opposed to the 4K @30fps HDR video on the current Tensor G4 chipset. Additionally, the base Pixel 10 model is expected to get a telephoto lens. For now, all rumors must be taken with a pinch of salt. Let us know your thoughts on whether or not you'll be upgrading to the Pixel 10 this year.
    • Hi All, I wanted to know how I connect dual monitor (2 x 24 inch monitor) via HDMI or DP to my PC with no Graphics card Below are the PC Specs. I don't have any GFX card and currently utilising the integrated graphics. Processor : AMD Ryzen 7 7700 upto 5.30GHz 8C 16T OEM Motherboard : MSI B650 S Pro Wifi DDR5  
    • Definitely not the same telemetry collected for W10 as there is for W11, and W10 ran great compared to the dumpster fire that is W11 even today 4 years later. Windows 8 was not remarkable and arguably the most forgettable release to date.
    • Bazzite isn't a fork of SteamOS, it's a fork of Fedora Atomic that runs an interface similar to SteamOS. I'm also curious to hear what improvements it brings over actually running SteamOS on the Deck?
  • Recent Achievements

    • First Post
      ClarkB earned a badge
      First Post
    • Week One Done
      Epaminombas earned a badge
      Week One Done
    • Week One Done
      Prestige Podiatry Care earned a badge
      Week One Done
    • Week One Done
      rollconults earned a badge
      Week One Done
    • Week One Done
      lilred1938 earned a badge
      Week One Done
  • Popular Contributors

    1. 1
      +primortal
      137
    2. 2
      Xenon
      129
    3. 3
      ATLien_0
      124
    4. 4
      +Edouard
      102
    5. 5
      snowy owl
      97
  • Tell a friend

    Love Neowin? Tell a friend!