вопрос по работе со стринговыми строками

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

вопрос по работе со стринговыми строками

Сообщение grigoreo » 21.01.2010 15:48:25

Уважаемые форумчане, вопрос такой как лудше можно сделать следующий алгоритм есть строка тип String как ее лудше обработать на предмет замены в ее теле всех кавычек на двойные кавычки , иначе когда я эту строку отправляю на сохранение в SQL запросе получаются или ошибки или половинится количество кавычек' (детально не обязательно лишь суть и набор функций),))
Аватара пользователя
grigoreo
постоялец
 
Сообщения: 195
Зарегистрирован: 10.03.2009 15:43:43
Откуда: С нашей Раши

Re: вопрос по работе со стринговыми строками

Сообщение Vadim » 21.01.2010 15:58:06

grigoreo
Вместо кавычек использовать либо паскалевскую собственную функцию QuotedStr(часть_строки_которую_надо_обрамить_кавычками), либо аналогичную функцию той СУБД, которой Вы отправляете запрос. Второе проще.
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: вопрос по работе со стринговыми строками

Сообщение Mr.Smart » 21.01.2010 15:58:36

Есть 2 стандартные функции AnsiQuotedStr и AnsiExtractQuotedStr, которые соответственно дублируют кавычки и убирают :wink:
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: вопрос по работе со стринговыми строками

Сообщение скалогрыз » 21.01.2010 15:59:07

Код: Выделить всё
uses
  ...SysUtils...

  s:=StringReplace(s, #39, '"', rfReplaceAll);
скалогрыз
долгожитель
 
Сообщения: 1803
Зарегистрирован: 03.09.2008 02:36:48

Re: вопрос по работе со стринговыми строками

Сообщение grigoreo » 21.01.2010 16:11:46

спасибо всем )) (все варианты рабочие)
понравилась QuotedStr короче всего
Аватара пользователя
grigoreo
постоялец
 
Сообщения: 195
Зарегистрирован: 10.03.2009 15:43:43
Откуда: С нашей Раши

Re: вопрос по работе со стринговыми строками

Сообщение Mr.Smart » 21.01.2010 16:14:11

Так из функции QuotedStr и вызывается функция AnsiQuotedStr
Код: Выделить всё
function QuotedStr(const S: string): string;
begin
result := AnsiQuotedStr(s, '''');
end ;

так что смысл использовать обёртку :wink:
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: вопрос по работе со стринговыми строками

Сообщение Climber » 21.01.2010 16:49:11

Применительно к SQL - надо пользоваться параметрами.
Climber
постоялец
 
Сообщения: 415
Зарегистрирован: 03.06.2007 20:09:57
Откуда: Москва


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 17

Рейтинг@Mail.ru