Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.02.2008, 09:38   #1
XPAiN
Форумчанин
 
Аватар для XPAiN
 
Регистрация: 31.10.2007
Сообщений: 108
По умолчанию Ковычки в SQL запросе

Такая проблема возникла у меня. Есть SQL запрос
Код:
select*
From table1
Where field1 like "%123%"
Таким образом у меня реализован поиск. Edit1 я забираю значение. В поле Field1 храняться значения с двойными ковычками. Стоит в Edit1 написать двойную ковычку запрос ругается сразу. И это понятно почему. Получается
Код:
Where field1 like "%12"3%"
- три двойных ковыки. Есть способ обойти как-нибудь такой косяк???? Двойная ковычка необходима при поиске!!!!
delphi is my world
XPAiN вне форума Ответить с цитированием
Старый 22.02.2008, 09:43   #2
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

вот так:
Код:
Where field1 like "%12\"3%"
B_N вне форума Ответить с цитированием
Старый 22.02.2008, 10:21   #3
XPAiN
Форумчанин
 
Аватар для XPAiN
 
Регистрация: 31.10.2007
Сообщений: 108
По умолчанию

Не помогает. а что означает знак черты для запроса?
delphi is my world
XPAiN вне форума Ответить с цитированием
Старый 22.02.2008, 10:55   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

...'Where field1 like '+QuotedStr('%12"3%');

B_N, ты знаеш я заметил что сишное \" не всякий провайдер понимает, так что автор бы уточнил на какой СУБД работает
I'm learning to live...

Последний раз редактировалось Stilet; 22.02.2008 в 10:57.
Stilet вне форума Ответить с цитированием
Старый 22.02.2008, 10:56   #5
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Цитата:
Сообщение от XPAiN Посмотреть сообщение
Не помогает. а что означает знак черты для запроса?
То же, что и всегда - подстановку символа, который иначе или нельзя написать, вроде как \0 или перевод строки, или нелзя включить в строку по синтаксическим соображениям, вроде как с этими кавычками. Не знаю, почему не помогает, это всегда прекрасно работает, ну попробуйте по бокам одиночные кавычки поставить
Код:
Where field1 like '%12"3%'
-----------------------------------
О!. Stilet уже нашел выход. Ну тогда еще можно так:
Код:
Where field1 like "%12""3%"

Последний раз редактировалось B_N; 22.02.2008 в 10:58.
B_N вне форума Ответить с цитированием
Старый 22.02.2008, 10:58   #6
фЁдОр
Форумчанин
 
Аватар для фЁдОр
 
Регистрация: 06.09.2007
Сообщений: 908
По умолчанию

а где ж Вы эдит-та в запросе используете?
и, что значит:
Цитата:
Edit1 я забираю значение
?
Вы этот эдит для поиска используете?
фЁдОр вне форума Ответить с цитированием
Старый 22.02.2008, 11:40   #7
XPAiN
Форумчанин
 
Аватар для XPAiN
 
Регистрация: 31.10.2007
Сообщений: 108
По умолчанию

Бд Acess + провайдер ADO. Edit у меня для ввода информации для поиска. Я оттуда забираю в запрос что искать.
delphi is my world

Последний раз редактировалось XPAiN; 22.02.2008 в 11:42.
XPAiN вне форума Ответить с цитированием
Старый 22.02.2008, 11:51   #8
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Сообщение от XPAiN Посмотреть сообщение
Бд Acess + провайдер ADO. Edit у меня для ввода информации для поиска. Я оттуда забираю в запрос что искать.
Но тогда ведь должно быть что-то вроде
'...Where field1 like '+QuotedStr(Edit1.Text)
или использовать Edit1.Text как параметр...
Цитата:
Where field1 like "%12\"3%"
Так вроде бы надо еще и ссылочку сделать, что косая отменяет значение метасимвола:
Where field1 like '%12\"3%' ESCAPE '\'

Последний раз редактировалось mihali4; 22.02.2008 в 12:04.
mihali4 вне форума Ответить с цитированием
Старый 22.02.2008, 12:10   #9
фЁдОр
Форумчанин
 
Аватар для фЁдОр
 
Регистрация: 06.09.2007
Сообщений: 908
По умолчанию

блин, у меня нет значений в таблицах с ковычками, но почему бы не попробовать самый приметивный способ:

Код:
select*   
From table1   
Where field1 like ''%'edit1.text'%''
фЁдОр вне форума Ответить с цитированием
Старый 22.02.2008, 12:28   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
почему бы не попробовать самый приметивный способ:
Потому что он не сработает из-за отсутствия конкатенации строки
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка при запросе SQL в IB Алекс1 БД в Delphi 2 24.06.2007 22:37
Ошибка в SQL запросе eremin БД в Delphi 2 23.06.2007 07:13
Ошибка в SQL запросе...!? KeyDok БД в Delphi 5 21.06.2007 09:19