devxlogo

Double quotes in queries

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 StringsSQL = “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 = sNewStringEnd Function

devx-admin

Share the Post: