|
|
Hello,
Questions:
What is the question mark in the SQL 'IN' condition?
How can you help me make the list menu work (as did in DW8) where the user can
select multiple items, submit and then display multiple results?
Why did CS3 change code that actually worked in DW8?
Issue Described Below:----------------------------------------------
I recently completed developing a web application for my organization and the
working prototype is being tested in our development server. I developed the
web application in DW8. The web application uses a form request to search for
data in sql server (or previous in ACCESS database). The code in question
developed in DW8 actually works. This specific code allows the user to select
several items from a list menu and then submit and then the multiple results
are displayed:
In advance recordset this is what I coded in DW8:
SELECT *
FROM tblCustomer
WHERE ProductID IN (MMColParam)
ORDER BY ProductID, Model, Month, Year ASC
In the actual asp page Macromedia DW8 displays:
<%
Dim RsCustomer__MMColParam
RsCustomer__MMColParam = "0"
If (Request.Form("sltForm") <> "") Then
RsCustomer__MMColParam = Request.Form("sltForm")
End If
%>
<%
Dim RsCustomer
Dim RsCustomer_numRows
Set RsCustomer = Server.CreateObject("ADODB.Recordset")
RsCustomer.ActiveConnection = MM_Customer_STRING
RsCustomer.Source = "SELECT * FROM tblCustomer WHERE ProductID IN (" +
Replace( RsCustomer__MMColParam, "'", "''") + ") ORDER BY ProductID, Model,
Month, Year ASC"
RsCustomer.CursorType = 0
RsCustomer.CursorLocation = 2
RsCustomer.LockType = 1
RsCustomer.Open()
RsCustomer_numRows = 0
%>
The above code works when I run the application from my local using DW8 and
now the working prototype is being tested without any issues in development.
However, we just recently upgraded to CS3. I migrated the application to CS3
from DW8. When I launch the search page from CS3 , I receive the following
error message (note: I am using an ACCESS database):
Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria
expression.
/customer/asp/DisplaySelect2.asp, line 20
I went into CS3's advance recordset under Parameter section and changed the
data type to 'Text'and the following code on the actual asp page CHANGED to:
<%
Dim RsCustomer
Dim RsCustomer_cmd
Dim RsCustomer_numRows
Set RsCustomer = Server.CreateObject("ADODB.Recordset")
RsCustomer.ActiveConnection = MM_Customer_STRING
RsCustomer.Source = "SELECT * FROM tblCustomer WHERE ProductID IN (?)
ORDER BY ProductID, Model, Month, Year ASC"
RsCustomer_cmd.Prepared = true
RsCustomer_cmd.Parameters.Append RsCustomer_cmd.CreateParameter("param1", 200,
1, 255, RsCustomer__MMColParam) ' adVarChar
Set RsCustomer = RsCustomer_cmd.Execute
RsCustomer_numRows = 0
%>
Now, When I run the application, I can not display my multiple selections from
the list menu. I can only select one item and display.
I appreciate feedback on this. I can't move forward on this application if I
am having issues with this particular tailored search function, especially if I
have to make further adjustments on this page in CS3. So your help is greatly
needed Thank you
|
|