2 вопроса

-GL-
Дата: 21.09.2005 23:50:52
1) есть поле, в котором могут вводиться любые символы
Есть запрос, который формируется программно, причем в него включено значение из вышеупомянутого поля. Что-то типа
"SELECT .... WHERE p1='" & pole1 & "';"
Как быть в случае, если пользователь может ввести одинарную кавычку?

2) Есть поле со списком. Можно ли запретить вводить в него данные с клавиатуры, разрешить только значение из списка? Причем не должно происходить событие - AfterUpdate. А то я нажал просто Enter и AfterUpdate произошло.
botpride
Дата: 21.09.2005 23:59:23
"Программно" - это чем? Если любым приличным языком - то используешь prepared statement, и вписываешь параметр с вопросительным знаком:
SELECT .... WHERE ...=?
А перед исполнением вписываешь юзерское значение в параметр №1. При исполнении подготовленного запроса ему глубоко начхать на кавычки. Вообще клеить запросы строкой - дурной тон и дыра в безопасности.
-GL-
Дата: 05.10.2005 00:03:38
botpride
"Программно" - это чем? Если любым приличным языком - то используешь prepared statement, и вписываешь параметр с вопросительным знаком:
SELECT .... WHERE ...=?
А перед исполнением вписываешь юзерское значение в параметр №1. При исполнении подготовленного запроса ему глубоко начхать на кавычки. Вообще клеить запросы строкой - дурной тон и дыра в безопасности.


Где можно почитать об этом prepared statement?
Темный
Дата: 05.10.2005 01:43:00
автор
Вообще клеить запросы строкой - дурной тон и дыра в безопасности.

И давно ли? Или инъекции покоя не дают?
-GL-
Дата: 05.10.2005 12:24:55
Итак, на повестке дня 4 вопроса, ни на один из которых не прозвучал четкий ответ:
- мои два;
- дурной ли тон;
- где почитать про prepared statement

????
Sinner
Дата: 05.10.2005 12:37:18
и с каждым топиком количество вопросов будет возрастать в геометрической прогрессии...

Ответ 1:
Как что делать, "валидировать" параметры, либо отсекать эту двойную кавычку. Либо написать так:
например параметр: Don't it.
сделать надо так
   " параметр = ' " & replace(Don't it,"'","'''") & "'"
Ответ 2: Если мне не изменяет мой склероз, то в поле со списком(комбобокс я так понимаю?) не позволяет вводить свои значения,
а не хочешь обрабатывать AfterUpdate - там есть уйма других событий,
например на покидание данного поля, или изменение...
Анатолий.
Дата: 05.10.2005 12:53:58
2) LimitToList=True