Login | Register   
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Language: Visual Basic
Expertise: Beginner
Mar 16, 1998

Double quotes in queries

Question:
OK, suppose you need to include in a query a string which contains both single and double quotes, for example:

UPDATE Books SET Title = "Gulliver's Travels"

I need to save those double quotes, since this is a title. The formatting function must also deal with strings having either one quote type or the other; or no quotes at all. Is this possible?

Answer:
Whenever you build a SQL string like this, you actually need to enclose literals in single quotes. However, you can see the obvious problem in a name like "Gulliver's Travels" in that the database gets confused when it finds another single quote in the literal.

The simple solution is to replace each single quote in your string with two single quotes next to each other. The correct SQL string you need to send to the database is as follows:

Dim sSQL As String
sSQL = "UPDATE Books SET Title = 'Gulliver''s Travels' WHERE somecondition"
Here is a function to clean your string for you. You can simply wrap each string value before adding it to your SQL string.
Function fnCleanString(sInput As String) As String
   Dim sNewString As String
   Dim i As Integer

   For i = 1 To Len(sInput)
      If Mid$(sInput, i, 1) = "'" Then
         sNewString = sNewString & "''"
      Else
         sNewString = Mid$(sInput, i, 1)
      End If
   Next i

   fnCleanString = sNewString
End Function
DevX Pro
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap