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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.05.2010, 18:07   #1
abr_question
Пользователь
 
Регистрация: 15.01.2008
Сообщений: 32
По умолчанию Кавычка в строке

Работаю с базами данных, необходимо маскировать кавычки.
Для етого делаю в формировании запроса, например, такое:

'select * from users where userlogin = ' + QuotedStr(AnsiReplaceStr(Login.Text , '''', '\'''));

При проверке, какой запрос всё же туда подаётся, одинарная кавычка дублируется.
То есть, если я введу log'in, то после выполнения
Edit1.Text := QuotedStr(AnsiReplaceStr(Login.Text , '''', '\'''));

в Edit1 появится log\''in (хотя, нужен log\'in).
Я думаю, что такая же фигня передаётся и запросу, соответственно, он и верно работать не будет, хотя ошибок не выдаёт.
Проверял и в 7 и в 10 Делфи...
Как победить?

Последний раз редактировалось abr_question; 23.05.2010 в 18:10.
abr_question вне форума Ответить с цитированием
Старый 23.05.2010, 18:12   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

попробуйте так AnsiReplaceStr(Login.Text , #39, '\'#39)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 23.05.2010, 18:33   #3
abr_question
Пользователь
 
Регистрация: 15.01.2008
Сообщений: 32
По умолчанию

Всё, я понял.. Ето дело рук QuotedStr, она дублирует одинарную кавычку, видимо екранирует...
abr_question вне форума Ответить с цитированием
Старый 23.05.2010, 18:42   #4
abr_question
Пользователь
 
Регистрация: 15.01.2008
Сообщений: 32
По умолчанию

Самое интересное, что для выполнения запроса можно просто делать QuotedStr(Login.text), а если кавычку необходимо вывести в TEdit, то необходимо делать AnsiReplaceStr..
Интересная система
abr_question вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
поиск в строке Apis Помощь студентам 1 27.04.2010 22:30
Картинка в строке Виталька Помощь студентам 2 06.04.2010 17:33
числа в строке Михаил1 Microsoft Office Excel 3 09.10.2009 18:52
[C] палиндромы в строке koketochka Помощь студентам 3 23.11.2008 14:45
Поиск с строке.. Rom1k06 Microsoft Office Excel 2 15.10.2008 07:42