|
|
|
|
Мой
запрос получает параметр. Проблема в том, что строка параметра содержит "
(двойную кавычку), которая приводит к Runtime Error.
Вам
необходимо использовать динамический SQL-запрос, иначе при указании
например WHERE TABLE.FIELD = 'let"ter' вы получите ошибку.
Еще
один вариант ответа:
Чтобы не было SQL-ошибки при составлении запроса
"на лету", где участует строка с кавычками, надо просто напросто задвоить
эти кавычки! Вот наглядный пример:
Искомая строка составляет сразу 2
символа '", а запрос имеет вид
SELECT * FROM MyTable WHERE MyField="значение"
Подставляем
значение с задвоеной кавычкой " :
SELECT * FROM MyTable WHERE MyField="'"""
И все!
Можно упростить преобразования, если использовать специальную функцию:
function Quoted(const St: string): string; var i: integer; begin Result:=''; for i:=1 to Length(St) do if (St[i] = '"') then Result:=Result+'""' else Result:=Result+St[i]; end;
Немного
грубовато, но вполне работоспособно! =)
Автор: Щербаков Сергей
|
Copyright ©
"Мастера DELPHI" E-mail:
delphi@mastak.com
http://www.delphimaster.ru |
Источник получения информации: http://www.delphimaster.ru
|
|