Поиск:

Ответ в темуСоздание новой темы Создание опроса
> sql и двойные кавычки, помогите составить запрос 
:(
    Опции темы
wofs
Дата 27.8.2008, 22:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 1.5.2007

Репутация: нет
Всего: нет



в таблице (пусть будет table.dbf), используется DBF+BDE, в некотором столбце (например stolbec) данные имеют двойные кавычки (") например
| данные с "кавычками" |
запрос типа
Код

Select * from table.dbf where '+stolbec+' LIKE "%" || "'+text+'" || "%"

где text:='с "кавычка';
выдает ошибку (понятно почему, но не пойму как обойти)
помогите плиз... как "экранировать" двойные кавычки в запросе?

PM MAIL   Вверх
Данкинг
Дата 27.8.2008, 22:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



В твоём примере так:

Код

Select * from table.dbf where '+stolbec+' LIKE "%'+text+'%" '

Но лучше всё же в запросе использовать параметры.



--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
wofs
Дата 28.8.2008, 20:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 1.5.2007

Репутация: нет
Всего: нет



наверное я не так поставил вопрос...
как сделать так, что бы когда переменная text имеет значение (") двойная кавычка запрос обрабатывался корректно (в моем примере выводилась строка(ки)) где есть данный символ, а не вылетала ошибка.
PM MAIL   Вверх
Данкинг
Дата 28.8.2008, 22:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Цитата(wofs @ 28.8.2008,  21:28)
наверное я не так поставил вопрос...
как сделать так, что бы когда переменная text имеет значение (") двойная кавычка запрос обрабатывался корректно (в моем примере выводилась строка(ки)) где есть данный символ, а не вылетала ошибка.

Ну а запрос с параметрами если - тоже ошибка вылетает? Я просто не пробовал, поэтому не могу знать точно.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
wofs
Дата 29.8.2008, 08:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 1.5.2007

Репутация: нет
Всего: нет



Цитата

Ну а запрос с параметрами если

тот, что ты привел - проблем, тот же самый результат. другого пути составить запрос я не знаю... :(
PM MAIL   Вверх
Rodman
Дата 29.8.2008, 08:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 22
Всего: 122



Код

ADOQuery.Close;
ADOQuery.SQL.Clear;
ADOQuery.SQL.ADD('Select * from table.dbf where :Prm1 LIKE "%:prm2%" ');
ADOQuery.Parameters.ParamByName('Prm1').Value=stolbec;
ADOQuery.Parameters.ParamByName('Prm2').Value='траляля';
ADOQuery.Open;

PM MAIL WWW Skype GTalk YIM MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.1723 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.