We help IT Professionals succeed at work.

Check out our new AWS podcast with Certified Expert, Phil Phillips! Listen to "How to Execute a Seamless AWS Migration" on EE or on your favorite podcast platform. Listen Now

x

CDaoQuerydef and CDaoRecordset; running a query help

LukeSkywalker
on
Medium Priority
584 Views
Last Modified: 2013-11-19
I'm trying to do a simple search through my database.  I created a query in Access called "Simple Search".  The Criteria is: [Title] like [Search String].  Title is a field in the database.  Search String is a parameter that is set by my program.  This is my code:


//m_pDaoWorkspace and m_pDaoDatabase have already been created

CDaoQueryDef q(m_pDaoDatabase);
q.Open("Simple Search");
int isRet = q.GetReturnsRecords(); // this returns 1
int param = q.GetParameterCount(); // this returns 1
CDaoParameterInfo info;
q.GetParameterInfo(0,info);  // the 1 param = Search String

q.SetParamValue("Search String",COleVariant("*Uranium*"));
//I hope I have done this right.This might explain problem

CMyRecordset *r; // derived from CDaoRecordset
r = new CMyRecordset( m_pDaoDatabase );

if( ! r->IsOpen( ))
{
   try
   {
      r->Open(&q);
   }
   catch( CDaoException* eDaoException )
   {
      eDaoException->Delete( );
      return FALSE;
   }
}
int recs = r->GetRecordCount();

This last line is the problem.  it returns 0.


If I do not pass the CQueryDef pointer to the Open function of CMyRecordset and just open it as a normal dynset recordset GetRecordCount returns 220 as it should.  There are 220 records in the database.  So the problem lies in my CQueryDef usage and most likely, I figure how I set the parameter.  Because if I run the query in MS-Access with the same value as I set it in my program it returns some 50 records.

I'd really appreciate any information I could get about things to look at.
Comment
Watch Question

Commented:
Unlock this solution with a free trial preview.
(No credit card required)
Get Preview

Author

Commented:
You suggestion worked to solve that problem.  Thank you!
Unlock the solution to this question.
Thanks for using Experts Exchange.

Please provide your email to receive a free trial preview!

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.