Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

Embedded SQL in C code, problem with LIKE Statement

Posted on 2003-11-17
5
Medium Priority
?
250 Views
Last Modified: 2010-04-15
All,

I have a database that is suppose to be a mock of a database a library would use.  I am now writing a c program that would be the interface for the librarians and users of the library.  One of the menu options I have is an option to search for a book by its title.  For instance, one of the books in the library is "The Humane Interface".  If the user searched for "Humane", they should get that as a result.  If the user searched for "Hum", they should get that result.

My table that holds the titles of my books is called BOOK.  Here is my select statement.

SELECT TITLE
FROM BOOK
WHERE TITLE LIKE '%:title%';

:title is the value I get from the user.  It seems to be searching for ":title" instead of what :title is a variable for.  I also tried to use strcat like so:

strcpy(temp, "'%");
strcat(temp, title);
strcat(temp, "%'");

SELECT TITLE
FROM BOOK
WHERE TITLE LIKE :temp;

The SELECT statement works because if I hardcode "Humane" into the select, it returns the book.  I just need to know how to pass the variable into the SELECT statement.  I am not sure if there is a problem with newlines at the end of the string or not.

The database I am interacting with is an Oracle9i and I am using sqlplus.

Hope this is enough information.

Thanks
0
Comment
Question by:stevedave
  • 2
4 Comments
 
LVL 5

Expert Comment

by:BlackDiamond
ID: 9767440
try this:

SELECT TITLE
FROM BOOK
WHERE TITLE LIKE (temp);
0
 

Author Comment

by:stevedave
ID: 9768009
I tried it in all the ways that I could possibly think of and none worked.  Thanks for the idea though.
0
 

Author Comment

by:stevedave
ID: 9771263
I found the solution to my problem.  When using strcat, the only thing wrong was that I did not need the single quotes.  Here is what I should have had:

strcpy(temp, "%");
strcat(temp, title);
strcat(temp, "%");

SELECT TITLE
FROM BOOK
WHERE TITLE LIKE :temp;

Just the % is put around it with no single quote.

Nate
0
 

Accepted Solution

by:
SpazMODic earned 0 total points
ID: 10420067
PAQed, with points refunded (125)

SpazMODic
EE Moderator
0

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This tutorial is posted by Aaron Wojnowski, administrator at SDKExpert.net.  To view more iPhone tutorials, visit www.sdkexpert.net. This is a very simple tutorial on finding the user's current location easily. In this tutorial, you will learn ho…
Summary: This tutorial covers some basics of pointer, pointer arithmetic and function pointer. What is a pointer: A pointer is a variable which holds an address. This address might be address of another variable/address of devices/address of fu…
Video by: Grant
The goal of this video is to provide viewers with basic examples to understand and use for-loops in the C programming language.
Video by: Grant
The goal of this video is to provide viewers with basic examples to understand and use nested-loops in the C programming language.
Suggested Courses

782 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question