На главную
Подписка
Новости


Рейтинг@Mail.ru











Главная / DELPHI / Часто задаваемые вопросы и ответы на них / Разработка баз данных / Мой запрос получает параметр. Проблема в том, что строка параметра содержит " (двойную кавычку), которая приводит к Runtime Error. Сделать домашней страницей Добавить в избранное Написать писмо

Мой запрос получает параметр. Проблема в том, что строка параметра содержит " (двойную кавычку), которая приводит к 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
Hosted by uCoz