Экранирование нежелательных символов, в основном одинарных кавычек - заменить функцию и реализацию

Я просто тестировал свою базу данных и понял, что сталкиваюсь с проблемами, когда текстовая запись в моей базе данных содержит' символ (одинарная кавычка). Мое решение на данный момент состоит в том, что перед любыми .execute операциями над строкой я вызываюescape(string, "'", " "'" ").

Обобщенный пример ниже:

qr = "INSERT INTO tblExample VALUES ( " & "'" & me.testparam & "'" & ");"
qr = Replace(qr, "'", " "'" ")
db.execute qr
'also tried  qr = "INSERT INTO tblExample VALUES ( " & "'" & replace(me.testparam,"'"," ") & "'" & ");"

Это было то, что я предположил, чтобы быть правильным обходным путем, чтобы предотвратить ошибки от таких значений, какTourette's.

Есть две проблемы с этим. Прежде всего, это не работает. Во-вторых, в моем приложении более 50 мест в коде, где я вызываю оператор db.execute qr, где qr - строка, которая может содержать одну кавычку. Мне нужно, чтобы поле в таблице содержало одинарные кавычки, поэтому я не могу просто заменить его пробелом или чем-то подобным.

Вопрос из двух частей:

Is there a better solution than going through all of my code calling Replace on every string that is to be executed as a query?

Why is my current implementation failing? - I still get syntax error in query expression even when escaping the single quote to a space.

Ответы на вопрос(3)

Ваш ответ на вопрос