Solved

Embedded SQL in C code, problem with LIKE Statement

Posted on 2003-11-17
5
243 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
5 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

Is Your AD Toolbox Looking More Like a Toybox?

Managing Active Directory can get complicated.  Often, the native tools for managing AD are just not up to the task.  The largest Active Directory installations in the world have relied on one tool to manage their day-to-day administration tasks: Hyena. Start your trial today.

Question has a verified solution.

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

Preface I don't like visual development tools that are supposed to write a program for me. Even if it is Xcode and I can use Interface Builder. Yes, it is a perfect tool and has helped me a lot, mainly, in the beginning, when my programs were small…
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…
The goal of this video is to provide viewers with basic examples to understand and use structures in the C programming language.
Video by: Grant
The goal of this video is to provide viewers with basic examples to understand and use while-loops in the C programming language.

920 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

Need Help in Real-Time?

Connect with top rated Experts

17 Experts available now in Live!

Get 1:1 Help Now