Re: [SQL] string containing (')

From: Peter Garner <peter_garner(at)yahoo(dot)com>
To: Atika <agoswa(at)essex(dot)ac(dot)uk>, pgsql-sql(at)postgreSQL(dot)org
Subject: Re: [SQL] string containing (')
Date: 1999-03-22 00:58:55
Message-ID: 19990322005855.7207.rocketmail@send205.yahoomail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

Hi Atika!

You need to escape the apostrophe, in other words,

"Let's all get stoned"

must be converted to

"Let\'s all get stoned"

Here is some java that does this :

/**
* Massages a <code>String</code> parameter so that parameter is
palatable to the Database. For
* example, "It's a good day!" would be converted to "It\'s a good
day!".
*
* @param string The <code>String</code> we wish to massage
*
* @return A "fixed" version of the Argument
<code>String</code> Object
*/
public static String fixupString ( String string )
{
// Assume a worst case scenario where EVERY byte in the string
needs to be escaped, i.e. make the Length of the NEW
// Buffer twice the Length of the old Buffer
char cCurrent = '\0' ;
char carrBuffer [] = new char [string.length () * 2] ;
int nBuffIdx = 0 ;

for ( int n = 0 ; n < string.length () ; n++ )
{
cCurrent = string.charAt ( n ) ;

// See if the current character is an apostrophe or an '\'. I
think the only reliable way to escape all apostrophes
// and all '\' is to escape each and every one that is
encountered. Otherwise one may not get the original Text back
// out of the DBMS. For example if we have the string
"1234\'5678" and we do not alter it since the apostrophe is
// already escaped, we will get the string "1234'5678" when we
retrieve it FROM the DBMS!
if ( charNeedsEscaping ( cCurrent ) )
{
carrBuffer [nBuffIdx++] = '\\' ;

} /* endif */

carrBuffer [nBuffIdx++] = cCurrent ;

} /* endfor */

String strgReturn = new String ( carrBuffer , 0 , nBuffIdx ) ;

return strgReturn ;

} /* static String fixupString ( String string ) */

---Atika <agoswa(at)essex(dot)ac(dot)uk> wrote:
>
> HI!
> Can anyone help,
> I want to store a string into a relation that might contain an
apostrophe
> ('). Is there anyway around this or can I not store such strings.
> Thanks for your help

==
Peace,
Peter

We are Microsoft of Borg, you will be assimilated!!!
Resistance is fut... ***BZZZRT*** THUD!!!
[General Protection Fault in MSBorg32.DLL]
Please contact the vendor of this Borg for more information
_________________________________________________________
DO YOU YAHOO!?
Get your free @yahoo.com address at http://mail.yahoo.com

Browse pgsql-sql by date

  From Date Subject
Next Message Herouth Maoz 1999-03-22 12:35:12 Re: [SQL] string containing (')
Previous Message Robert McArthur 1999-03-20 22:42:04