Здравствуйте, albe, Вы писали:
A>Добрый день!
A>Такая проблема.
A>Выполняю такую последовательность
A>A>s:= 'update "имя_таблицы" set поле1=''+ Edit1.Text+ еще что-то...+'' where условие'
A>Query1.Close;
A>Query1.SQL.Clear;
A>Query1.SQL.Add(s);
A>Query1.ExecSQL;
A>
A>Если в Edit1.Text присутствует апостроф, то возникает ошибка... Либо непредсказуемый результат (в поле 1 записывается совсем не то).
A>Как обойти?
A>(вариант с заменой ' на " не подходит, в этом случае ругается, если в Edit1.Text будут кавычки).
Предваряйте апостроф и кавычки обратным слешем ("\"). Т.е. перед тем как передать строку в SQL ее ее проанализировать и в случае, если в строке есть апострофы и кавычки замените их на \' или \". Если в строке есть сам обратный слеш — удвайваете его (\\). Это т.н. escape-символы
Приходиться заниматься гадостью — зарабатывать на жизнь честным трудом (Б.Шоу)