Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > ASP .Net > ASP General > Syntax for wildcard query in ASP 3.0

Reply
Thread Tools

Syntax for wildcard query in ASP 3.0

 
 
Dave
Guest
Posts: n/a
 
      03-24-2007
This is my query named "spVOC_Sp_Example_search" in Access 2003:

PARAMETERS [pSearch] Text ( 255 );
SELECT Example.Example
FROM Example
WHERE (((Example.Example) Like "*" & [pSearch] & "*"));

It works great: I call the query, am prompted for the pSearch param value,
I supply a string as the value, and it returns all records with that string
contained anyhwere in the "example" field.

But none of the queries below will work in ASP 3.0:

Set rs = Server.CreateObject("ADODB.recordset")

sSQL="spVOC_Sp_Example_search pSearch=%a%"
sSQL="spVOC_Sp_Example_search pSearch=*"
sSQL="spVOC_Sp_Example_search pSearch=%"
sSQL="spVOC_Sp_Example_search pSearch='a'"
sSQL="spVOC_Sp_Example_search pSearch=""a"""
sSQL="spVOC_Sp_Example_search a"
sSQL="spVOC_Sp_Example_search *a*"
sSQL="spVOC_Sp_Example_search %a%"
sSQL="spVOC_Sp_Example_search %"
sSQL="spVOC_Sp_Example_search *"
sSQL="spVOC_Sp_Example_search ''"
rs.Open sSQL, cn, 0, 4

i=rs.RecordCount


All of the queries above either return 0 records or error out (Invalid SQL
statement; expected 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT', or 'UPDATE'.)

How do I properly call an Access parameterized wildcard query from ASP?


 
Reply With Quote
 
 
 
 
Bob Barrows [MVP]
Guest
Posts: n/a
 
      03-25-2007
Dave wrote:
> This is my query named "spVOC_Sp_Example_search" in Access 2003:
>
> PARAMETERS [pSearch] Text ( 255 );
> SELECT Example.Example
> FROM Example
> WHERE (((Example.Example) Like "*" & [pSearch] & "*"));
>


> How do I properly call an Access parameterized wildcard query from
> ASP?


In order to call the query via ADO, you must change the Jet wildcards to
ODBc wildcards:

WHERE (((Example.Example) Like "%" & [pSearch] & "%"));

Then you can simply call it by:

set rs=createobject("adodb.recordset")
cn.spVOC_Sp_Example_search "a", rs

See:
http://www.google.com/groups?hl=en&l...TNGP12.phx.gbl

http://groups.google.com/groups?hl=e...tngp13.phx.gbl


--
Microsoft MVP - ASP/ASP.NET
Please reply to the newsgroup. This email account is my spam trap so I
don't check it very often. If you must reply off-line, then remove the
"NO SPAM"


 
Reply With Quote
 
 
 
 
Dave
Guest
Posts: n/a
 
      03-25-2007
Thanks Bob

I think there is something fundamental I'm missing here.

I am not using dynamic SQL, my query resides on Access so in the Access
application the WHERE clause below returns over 1000 records:

WHERE (((Example.Example) Like "*" & [pSearch] & "*"));

While this returns 0 records:

WHERE (((Example.Example) Like "%" & [pSearch] & "%"));

Both of these WHERE clasues return 0 records to my ASP page.

So how do I use "%" in my situation?




"Bob Barrows [MVP]" <> wrote in message
news:...
> Dave wrote:
>> This is my query named "spVOC_Sp_Example_search" in Access 2003:
>>
>> PARAMETERS [pSearch] Text ( 255 );
>> SELECT Example.Example
>> FROM Example
>> WHERE (((Example.Example) Like "*" & [pSearch] & "*"));
>>

>
>> How do I properly call an Access parameterized wildcard query from
>> ASP?

>
> In order to call the query via ADO, you must change the Jet wildcards to
> ODBc wildcards:
>
> WHERE (((Example.Example) Like "%" & [pSearch] & "%"));
>
> Then you can simply call it by:
>
> set rs=createobject("adodb.recordset")
> cn.spVOC_Sp_Example_search "a", rs
>
> See:
> http://www.google.com/groups?hl=en&l...TNGP12.phx.gbl
>
> http://groups.google.com/groups?hl=e...tngp13.phx.gbl
>
>
> --
> Microsoft MVP - ASP/ASP.NET
> Please reply to the newsgroup. This email account is my spam trap so I
> don't check it very often. If you must reply off-line, then remove the
> "NO SPAM"
>



 
Reply With Quote
 
Bob Barrows [MVP]
Guest
Posts: n/a
 
      03-25-2007
Dave wrote:
> Thanks Bob
>
> I think there is something fundamental I'm missing here.
>
> I am not using dynamic SQL,


I know you're not.

> my query resides on Access so in the
> Access application the WHERE clause below returns over 1000 records:


Yes I know. Access uses DAO to execute your stored queries, so the Jet
wildcards can be used. When executing queries, even saved queries, via ADO,
the ODBC wildcards must be used. It's very nonintuitive, I know.
>
> WHERE (((Example.Example) Like "*" & [pSearch] & "*"));
>
> While this returns 0 records:
>
> WHERE (((Example.Example) Like "%" & [pSearch] & "%"));
>
> Both of these WHERE clasues return 0 records to my ASP page.
>


The latter should work. I've just tested it with this sample data:

abcd
efgh
halp
pqrs

I created a saved query called "wildcardsearch" with this sql:
SELECT Example
FROM Example
WHERE Example Like "%" & [psearch] & "%";

Using this code to execute the saved query:
<%
dim cn, rs, s
s="a"
set cn=createobject("adodb.connection")
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & server.MapPath("db7.mdb")
set rs=createobject("adodb.recordset")
cn.wildcardsearch s,rs
if not rs.EOF then
Response.Write rs.GetString(,,,"<BR>")
else
Response.Write "No records retrieved"
end if
rs.Close
cn.Close
%>

I get this result:
abcd
halp



--
Microsoft MVP - ASP/ASP.NET
Please reply to the newsgroup. This email account is my spam trap so I
don't check it very often. If you must reply off-line, then remove the
"NO SPAM"


 
Reply With Quote
 
Dave
Guest
Posts: n/a
 
      03-25-2007
My sincere apologies.

It works fine now. I was testing improperly for the recordset.

Thank you for the example and your patience


"Bob Barrows [MVP]" <> wrote in message
news:%...
> Dave wrote:
>> Thanks Bob
>>
>> I think there is something fundamental I'm missing here.
>>
>> I am not using dynamic SQL,

>
> I know you're not.
>
>> my query resides on Access so in the
>> Access application the WHERE clause below returns over 1000 records:

>
> Yes I know. Access uses DAO to execute your stored queries, so the Jet
> wildcards can be used. When executing queries, even saved queries, via
> ADO, the ODBC wildcards must be used. It's very nonintuitive, I know.
>>
>> WHERE (((Example.Example) Like "*" & [pSearch] & "*"));
>>
>> While this returns 0 records:
>>
>> WHERE (((Example.Example) Like "%" & [pSearch] & "%"));
>>
>> Both of these WHERE clasues return 0 records to my ASP page.
>>

>
> The latter should work. I've just tested it with this sample data:
>
> abcd
> efgh
> halp
> pqrs
>
> I created a saved query called "wildcardsearch" with this sql:
> SELECT Example
> FROM Example
> WHERE Example Like "%" & [psearch] & "%";
>
> Using this code to execute the saved query:
> <%
> dim cn, rs, s
> s="a"
> set cn=createobject("adodb.connection")
> cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
> "Data Source=" & server.MapPath("db7.mdb")
> set rs=createobject("adodb.recordset")
> cn.wildcardsearch s,rs
> if not rs.EOF then
> Response.Write rs.GetString(,,,"<BR>")
> else
> Response.Write "No records retrieved"
> end if
> rs.Close
> cn.Close
> %>
>
> I get this result:
> abcd
> halp
>
>
>
> --
> Microsoft MVP - ASP/ASP.NET
> Please reply to the newsgroup. This email account is my spam trap so I
> don't check it very often. If you must reply off-line, then remove the
> "NO SPAM"
>



 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Wildcard String Comparisons: Set Pattern to a Wildcard Source chaoticcranium@gmail.com Python 7 10-05-2010 09:26 PM
Using wildcard % in Hibernate (v 3.2.5) with named query traneHead Java 7 09-27-2007 03:21 AM
GET and POST dropping wildcard characters in DB query george.lengel@gmail.com Javascript 3 01-17-2006 11:20 PM
Index Server 2.0 wildcard query greg.kujawa@gmail.com ASP General 1 09-11-2005 05:15 PM
using FTP Wildcard in asp.net code Naveen M ASP .Net 1 07-23-2003 08:16 PM



Advertisments
 



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57