Question

Asked:
Asked By:
Feb 3 2006   1:29 AM GMT
avdberg   0 pts.

Passing parameters from .ASP (VBSript) to Activex object in date format


Crystal Reports, SQL, HTML, Web site design & management, Software, VBScript, ActiveX, ASP

I have inherited the following:

<%@ LANGUAGE="VBSCRIPT" %>

<%

dim adoconn
set adoconn = server.createobject("adodb.connection")

adoconn.open Application("DSN"),Application("UID"),Application("PWD")

reportname = "traininghrsbyemployee.rpt"

If Not IsObject (session("oApp")) Then
Set session("oApp") = Server.CreateObject("CrystalRuntime.Application")
End If

Path = Request.ServerVariables("PATH_TRANSLATED")
While (Right(Path, 1) <> "" And Len(Path) <> 0)
iLen = Len(Path) - 1
Path = Left(Path, iLen)
Wend

If IsObject(session("oRpt")) then
Set session("oRpt") = nothing
End if

Set session("oRpt") = session("oApp").OpenReport(path & reportname, 1)


session("oRpt").MorePrintEngineErrorMessages = False
session("oRpt").EnableParameterPrompting = False

session("oRpt").DiscardSavedData


set session("ParamCollection") = Session("oRpt").Parameterfields

set Param1 = session("ParamCollection").Item(1)
NewParamValue = Request.Form("datefrom") '"08/05/2005" '
Call Param1.SetCurrentValue(CStr(NewParamValue),12)

set Param2 = session("ParamCollection").Item(2)
NewParamValue = Request.Form("dateto") '"09/02/2005" '
Call Param2.SetCurrentValue(CStr(NewParamValue),12)


On Error Resume Next
session("oRpt").ReadRecords
If Err.Number <> 0 Then
Response.Write "An Error has occured on the server in attempting to access the data source"
Else

If IsObject(session("oPageEngine")) Then
set session("oPageEngine") = nothing
End If
set session("oPageEngine") = session("oRpt").PageEngine
End If


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

<%
adoconn.close()
%>

This passes dates as strings to the object.

The database structure has now changed and requires that dates be passed as datetime.

Can you help?

Subscribe to Alerts! Get questions and answers delivered to your Inbox.


E-mail me updates on this question



   SUBSCRIBE

hidden modal window

Answer Wiki (Improve, edit or add to this answer)


 RATE THIS ANSWER
0
Click to Vote:
  •   0
  •  0



Reformat the string to universal date format, i.e. '20060203'. I'm assuming MS SQL, not sequal!
  • AddThis Social Bookmark Button

Browse more Questions and Answers on DataManagement and Development.

Looking for relevant DataManagement Whitepapers? Visit the SearchDataManagement.com Research Library.


Discuss This Answer


You must be logged-in to discuss a question. Log-in/Register

CharlesJC   0 pts.  |   Feb 3 2006  7:22AM GMT

avdberg,

Try changing the double quotes (”) around the date to a pound (#).

 

EMTCodeGOD   0 pts.  |   Feb 3 2006  7:33AM GMT

Try CDate

 

PaulRyan   0 pts.  |   Feb 3 2006  7:50AM GMT

Re-format the date string using the universal date format, e.g.

3 Feb 2006 (UK 03/02/2006) becomes ‘20060203′

 

Freejack   0 pts.  |   Feb 7 2006  11:14AM GMT

Try this for your date sections:

If IsDate(Request.Form(”datefrom”)) Then
set Param1 = session(”ParamCollection”).Item(1)
NewParamValue = CDate(Request.Form(”datefrom”)) ‘”08/05/2005″ ‘
Call Param1.SetCurrentValue(CStr(NewParamValue),12)
End If

If IsDate(Request.Form(”dateto”)) Then
set Param2 = session(”ParamCollection”).Item(2)
NewParamValue = CDate(Request.Form(”dateto”)) ‘”09/02/2005″ ‘
Call Param2.SetCurrentValue(CStr(NewParamValue),12)
End If

Also, be aware that it’s generally a good idea not to store external objects in Session variables if it can be avoided because this can have a negative impact on performance in IIS.

 

Surianee » Passing Parameters in Crystal Report Using ASP   0 pts.  |   May 12 2008  7:38AM GMT

[...] Here’s a forum entry Filed under: Crystal Report [...]