Monday, March 26, 2012

Memo Field Comparison

I have SQL Server 7 running.

I recieve input from the user via a PHP form.

I have to match that input to the contents fo the memo field.

No matter what I do I receive errors like

1. Cannot compare VARCHAR
2.Warning: SQL error: [MERANT][ODBC SQLBase driver][SQLBase]00979 PRS PSR Plus sign required for outer join, SQL state 37000 in SQLExecDirect in F:\www\Apache2\htdocs\include\func_db.inc on line 25

generated by this code:
$bits_search_string = trim($bits_search_string);

$sql = "SELECT P.ID, P.DESCRIPTION"
. " FROM PART P, PART_BINARY PB"
. " WHERE P.ID = PB.PART_ID "
. " AND CONTAINS(PB.BITS, '$bits_search_string')";

or the latest

3.Warning: SQL error: [Microsoft][ODBC Cursor Library] Positioned request cannot be performed because result set was generated by a join condition, SQL state SL002 in SQLGetData in F:\www\Apache2\htdocs\include\func_db.inc on line 42

generated by this code:
$bits_search_string = trim($bits_search_string);

$sql = "SELECT P.ID, P.DESCRIPTION, PB.BITS"
. " FROM PART P, PART_BINARY PB"
. " WHERE P.ID = PB.PART_ID ";

$vdb->query($sql);
while ($row = $vdb->getRow(true)){
$memo = $row['PB.BITS'];

Where PB.BITS is the retarded memo field.

I can not change the database to have the field as text, there are
legacy applications dependent upon it.

I would appreciate any insight on how the memo field is structured.
What can I do to manipulate it. I can use PHP or JSP to create this
function. Those are the limitations.

Thank you very much,

I appreciate any feedback.There are a lot of usefull string functions that cannot be used on text (memo) fields, but you can use the CAST or CONVERT functions within your sql query to treat the fields as varchar datatypes. The disadvantage is that you can't index them.

blindman

No comments:

Post a Comment