You are here: Re: Function that replaces ntext and compares ntext with nvarchar « MsSQL Server « IT news, forums, messages
Re: Function that replaces ntext and compares ntext with nvarchar

Posted by Erland Sommarskog on 11/28/07 22:42

(verb13@hotmail.com) writes:
> I am running this query to an sql server 2000 database from my asp
> code:
> "select * from MyTable where
> MySqlServerRemoveStressFunction(MyNtextColumn) = '" &
> MyAdoRemoveStressFunction(MyString) & "'"
>
> The problem is that the replace function doesn't work with the ntext
> datatype (so as to replace the stresses with an empty string). I had
> to implement the MySqlServerRemoveStressFunction, i.e. a function that
> takes a column name as a parameter and returns the text contained in
> this column having replaced some letters of the text (the letters with
> stress). Unfortunately, I could not do that because user-defined
> functions cannot return a value of ntext.
>
> So I have the following idea:
> "select * from MyTable where
> CheckIfTheyAreEqualIngoringTheStesses(MyNtextColumn, '" & MyString &
> "')"
>
> How can I implement the CheckIfTheyAreEqualIngoringTheStesses
> function? (I don't know how to combine these functions to do what I
> want: TEXTPTR, UPDATETEXT, WRITETEXT, READTEXT)

I will have to admit that I don't really follow what this
CheckIfTheyAreEqualIngoringTheStesses is supposed to achieve. But
there are a lot of problems working with ntext. In SQL 2005 there
is a new data type nvarchar(MAX) which has the same limit as ntext,
but without the limitations.

However, if I understand you right, you want to make an accent-insensitive
comparision, so that "résumé" = "resume". This you can do easily without
any replace business, just use an accent-insentive collation:

SELECT * FROM MyTable
WHERE MyNtextColumn
COLLATE Finnish_Swedish_CI_AI = ?

(As for the question mark, that's an indiciation that you should use
parameterised statements and not interpolate parameters into your SQL
commands.)

Note that Finnish_Swedish_CI_AI is just an example, and you should pick
the CI_AI collation that matches the language(s) you work with.


--
Erland Sommarskog, SQL Server MVP, esquel@sommarskog.se

Books Online for SQL Server 2005 at
http://www.microsoft.com/technet/prodtechnol/sql/2005/downloads/books.mspx
Books Online for SQL Server 2000 at
http://www.microsoft.com/sql/prodinfo/previousversions/books.mspx

 

Navigation:

[Reply to this message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация