![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TClientDataSet.Locate ничего не находит [D7, Access]
Manfred © (2004-07-28 12:57:00)Извините за дурацкий вопрос,может кто-нибудь знает об особенностях работы метода Locate у ClientDataSet
У AdoDataSet следущий код
self.ClientDataSet1.Locate('TypeOfAirPlan',self.edit1.Text,[])
работал,у ClientDataSet не желает :((
Manfred (2004-07-28 15:56:00) [1]Текстовыый не нулл обязательный не ключевой индексированный без возможности повторения.
MU (2004-07-28 15:51:00) [2]поле ТypeOfAirPlan какого типа?
Manfred (2004-07-28 15:33:00) [3]Позиционируется на 1
sniknik (2004-07-28 15:20:00) [4]> Вот такой вот кусочек лобового кода подтверждает что данные в датасете есть: ...
а вот такой?
self.ClientDataSet1.Open;
self.ClientDataSet1.Last;
self.ClientDataSet1.First;
if self.ClientDataSet1.Locate('TypeOfAirPlan',self.edit1.Text,[]) then exit;
(просто проверить)
Manfred (2004-07-28 14:40:00) [5]>а еще есть такие штуки, как автозавершение классов >(ctrl+shift+c) - типа вводишь property MyProperty: Boolean; >ctrl+shift+c - а он тебе read и write сам сделал.
>или Ctrl+J, ctrl+shift+вверх/вниз, Alt+влево/вправо (если >пользоваться ctrl+MouseClick)
Очень полезные вещи,экономят время
MORA (2004-07-28 14:37:00) [6]
> To MORA Биг спасибо не знал
а еще есть такие штуки, как автозавершение классов (ctrl+shift+c) - типа вводишь property MyProperty: Boolean; ctrl+shift+c - а он тебе read и write сам сделал.
или Ctrl+J, ctrl+shift+вверх/вниз, Alt+влево/вправо (если пользоваться ctrl+MouseClick)
Manfred (2004-07-28 14:33:00) [7]Вот такой вот кусочек лобового кода подтверждает что данные в датасете есть:
self.ClientDataSet1.First ;
while not self.ClientDataSet1.Eof do begin
if self.ClientDataSet1.fieldbyname('TypeOfAirPlan').
value=Self.Edit1.Text then exit;
self.ClientDataSet1.next;
end;
Находит
Manfred (2004-07-28 14:29:00) [8]To MORA Биг спасибо не знал
MORA (2004-07-28 14:28:00) [9]
> Vlad © (28.07.04 14:18) [23]
не, тут по-моему трабл в другом.
а ну-ка кидай на мыло пока обед у меня - посмотрим...
MORA (2004-07-28 14:25:00) [10]
> self по привычке чтобы дельфя имена подсвечивала и не писать
> их целиком а выбрать из подсвеченного списка
а контрол-пробел уже отменили?
Vlad (2004-07-28 14:18:00) [11]
> Manfred (28.07.04 14:09) [21]
Еслих хочешь убедиться, сделай проще.
Возьми значения того поля, которое ты думаешь соответствует вводимому в Edit, запомни в какой нибудь переменной, скажем так:
S:=CDS.FieldByName('MyField').AsString
Затем запусти цикл по всем символам этой переменной, и выведи на экран последовательно код каждого символа.
То же самое проделай, для значения, вводимого в Edit.
Посмотри разницу.
Vlad (2004-07-28 14:11:00) [12]
> Manfred (28.07.04 14:09) [21]
> Выводит то что ввели
Значит то что ввели нету в НД
Manfred (2004-07-28 14:09:00) [13]Выводит то что ввели
Sandman25 (2004-07-28 14:04:00) [14]или наконец выведи
ShowMessage(Self.Edit1.Text)
Vlad (2004-07-28 13:55:00) [15]
> Manfred (28.07.04 13:41) [17]
> В чем? Мне ни фига не ясно
Ясно, что ты в параметр подставляешь значение, которого нет в НД.
Почему его нет ? Тебе виднее. Регистр не тот или буквы кое-где вместо русских латинские попадаются, или вобще символы какие-то левые в строке итд. Попробуй использовать регистронезависимый поиск, или поиск по части строки
Reindeer Moss Eater (2004-07-28 13:42:00) [16]А ты ветку перечитай, и станет ясно.
Manfred (2004-07-28 13:41:00) [17]В чем? Мне ни фига не ясно
Reindeer Moss Eater (2004-07-28 13:40:00) [18]Нафик нам твой клиент и твоя база.
Если и так ясно в чем причина.
Manfred (2004-07-28 13:38:00) [19]self по привычке чтобы дельфя имена подсвечивала и не писать их целиком а выбрать из подсвеченного списка.
Приложение MDI но я сделал простенький пример,таже база только клинт одна формочка на ней грид,сокетконектион,датасорс и клиентДатаСет.
Если хотитее могу скинуть на мыло сервак клиента и базу
Соловьев (2004-07-28 13:33:00) [20]
> if not
> self.ClientDataSet1.Locate('TypeOfAirPlan',self.edit1.T
>ext,[]) then
> self.ClientDataSet1.first;
что такое self? MDI приложение? Может ты не на тот грид смотришь? попробуй месагу выдавать