![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Использование метода Locate у TClientDataSet [D5, MSSQL]
harisma © (2008-03-31 12:33:00)Как выполнить Locate по значению поля, которое содержит символ ' (#39)?
Вызов происходит так:
cdsGroup.Locate('F1', VarArrayOf([Value]), [loCaseInsensitive, loPartialKey])
Value получаем считыванием значения с контрола формы (TEdit.Text), куда было введено слово 'зв'язок'.
Если подставить это значение как есть - то получим следующую ошибку:
"Invalid filter expression character: 'я'
Что делать? Каким образом следует предварительно обработать введенное значение, чтобы метод Locate корректно отработал? (в табличке строка чс таким значением в поле F1 существует)
Loginov Dmitry (2008-03-31 23:39:00) [1]> Value получаем считыванием значения с контрола формы (TEdit.Text)
> , куда было введено слово 'зв'язок'.
>
> Если подставить это значение как есть - то получим следующую
> ошибку
TClientDataSet крайне чувствителен к наличию апострофа (и к одинарному символу двойной кавычки). Байт FF тут непричем.
Виталий Панасенко(дом) (2008-03-31 14:25:00) [2]а, но при использовании VarArryaOf - не находит
if not cds.Locate('F1', VarArrayOf([Edit1.Text]), [loCaseInsensitive, loPartialKey]) then
ShowMessage('Not found')
а так
if not cds.Locate('F1', Edit1.Text, [loCaseInsensitive, loPartialKey]) then
ShowMessage('Not found')
без проблем
Виталий Панасенко(дом) (2008-03-31 14:19:00) [3]у меня в Д7 находит без проблем..можливо, глюк в Д5 ?
www (2008-03-31 13:54:00) [4]это проблема буквы "я", увы
тяжелое наследие кодировки FF
clickmaker (2008-03-31 12:54:00) [5]а в отладчике если зайти в Locate, на какой строке ошибка?