Форум: "Базы";
Текущий архив: 2004.08.22;
Скачать: [xml.tar.bz2];
ВнизTClientDataSet.Locate ничего не находит Найти похожие ветки
← →
Manfred (2004-07-28 12:57) [0]Извините за дурацкий вопрос,может кто-нибудь знает об особенностях работы метода Locate у ClientDataSet
У AdoDataSet следущий код
self.ClientDataSet1.Locate("TypeOfAirPlan",self.edit1.Text,[])
работал,у ClientDataSet не желает :((
← →
Sandman25 © (2004-07-28 12:59) [1]Locate у ClientDataSet работает.
← →
Reindeer Moss Eater © (2004-07-28 12:59) [2]У AdoDataSet следущий код
self.ClientDataSet1.Locate("TypeOfAirPlan",self.edit1.Text,[])
работал,у ClientDataSet не желает :((
В адо наборе данных была запись для такого поиска, а в ClientDataSet1 её нету
← →
Manfred (2004-07-28 13:03) [3]Сейчас AdoDataSet на сервере ClientDataSet на клинте к нему подвязан грид в котором все отображается.Locate возвращает false
← →
Manfred (2004-07-28 13:05) [4]Почему она отображается если ее нет?
← →
Nikolay M. © (2004-07-28 13:19) [5]Чему равно
> self.edit1.Text
?
← →
Reindeer Moss Eater © (2004-07-28 13:19) [6]Locate никак не связан с отображением.
Я иду в толпе и ищу тебя.
Не нахожу.
Но всех остальных я вижу, хотя и не ищу и они не удовлетворяют условию поиска
← →
Manfred (2004-07-28 13:24) [7]>Чему равно
> self.edit1.Text
Для теста беру значение поля TypeOfAirPlan из грида методом Crl+C Ctr+V
то есть то которое там должно быть
Конечно не связан,но удовлетворяющие условию отображаются там,значит они есть в искомом датасете
← →
Соловьев © (2004-07-28 13:27) [8]
> Для теста беру значение поля TypeOfAirPlan из грида
> методом Crl+C Ctr+V
а как ты определяешь что он ее не находит? если ты жмешь там клавиши в гриде и потом исчеш ее. то понятно, курсор уже стоит на нужной записи
← →
Manfred (2004-07-28 13:28) [9]Проверяю так:
if not self.ClientDataSet1.Locate("TypeOfAirPlan",self.edit1.Text,[]) then
self.ClientDataSet1.first;
← →
Reindeer Moss Eater © (2004-07-28 13:29) [10]Конечно не связан,но удовлетворяющие условию отображаются там,значит они есть в искомом датасете
Это они твоему зрению удовлетворяют, а не условию поиска.
← →
Manfred (2004-07-28 13:30) [11]>Это они твоему зрению удовлетворяют, а не условию поиска.
А почему работает если все локально и AdiDataSet?
← →
Reindeer Moss Eater © (2004-07-28 13:31) [12]Потому что набор данных другой
← →
Reindeer Moss Eater © (2004-07-28 13:32) [13]И в нем есть запись удовлетворяющая условию поиска
← →
Соловьев © (2004-07-28 13:33) [14]
> if not
> self.ClientDataSet1.Locate("TypeOfAirPlan",self.edit1.T
>ext,[]) then
> self.ClientDataSet1.first;
что такое self? MDI приложение? Может ты не на тот грид смотришь? попробуй месагу выдавать
← →
Manfred (2004-07-28 13:38) [15]self по привычке чтобы дельфя имена подсвечивала и не писать их целиком а выбрать из подсвеченного списка.
Приложение MDI но я сделал простенький пример,таже база только клинт одна формочка на ней грид,сокетконектион,датасорс и клиентДатаСет.
Если хотитее могу скинуть на мыло сервак клиента и базу
← →
Reindeer Moss Eater © (2004-07-28 13:40) [16]Нафик нам твой клиент и твоя база.
Если и так ясно в чем причина.
← →
Manfred (2004-07-28 13:41) [17]В чем? Мне ни фига не ясно
← →
Reindeer Moss Eater © (2004-07-28 13:42) [18]А ты ветку перечитай, и станет ясно.
← →
Vlad © (2004-07-28 13:55) [19]
> Manfred (28.07.04 13:41) [17]
> В чем? Мне ни фига не ясно
Ясно, что ты в параметр подставляешь значение, которого нет в НД.
Почему его нет ? Тебе виднее. Регистр не тот или буквы кое-где вместо русских латинские попадаются, или вобще символы какие-то левые в строке итд. Попробуй использовать регистронезависимый поиск, или поиск по части строки
← →
Sandman25 © (2004-07-28 14:04) [20]или наконец выведи
ShowMessage(Self.Edit1.Text)
← →
Manfred (2004-07-28 14:09) [21]Выводит то что ввели
← →
Vlad © (2004-07-28 14:11) [22]
> Manfred (28.07.04 14:09) [21]
> Выводит то что ввели
Значит то что ввели нету в НД
← →
Vlad © (2004-07-28 14:18) [23]
> Manfred (28.07.04 14:09) [21]
Еслих хочешь убедиться, сделай проще.
Возьми значения того поля, которое ты думаешь соответствует вводимому в Edit, запомни в какой нибудь переменной, скажем так:S:=CDS.FieldByName("MyField").AsString
Затем запусти цикл по всем символам этой переменной, и выведи на экран последовательно код каждого символа.
То же самое проделай, для значения, вводимого в Edit.
Посмотри разницу.
← →
MORA (2004-07-28 14:25) [24]
> self по привычке чтобы дельфя имена подсвечивала и не писать
> их целиком а выбрать из подсвеченного списка
а контрол-пробел уже отменили?
← →
MORA (2004-07-28 14:28) [25]
> Vlad © (28.07.04 14:18) [23]
не, тут по-моему трабл в другом.
а ну-ка кидай на мыло пока обед у меня - посмотрим...
← →
Manfred (2004-07-28 14:29) [26]To MORA Биг спасибо не знал
← →
Manfred (2004-07-28 14:33) [27]Вот такой вот кусочек лобового кода подтверждает что данные в датасете есть:
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;
Находит
← →
MORA (2004-07-28 14:37) [28]
> 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:40) [29]>а еще есть такие штуки, как автозавершение классов >(ctrl+shift+c) - типа вводишь property MyProperty: Boolean; >ctrl+shift+c - а он тебе read и write сам сделал.
>или Ctrl+J, ctrl+shift+вверх/вниз, Alt+влево/вправо (если >пользоваться ctrl+MouseClick)
Очень полезные вещи,экономят время
← →
sniknik © (2004-07-28 15:20) [30]> Вот такой вот кусочек лобового кода подтверждает что данные в датасете есть: ...
а вот такой?
self.ClientDataSet1.Open;
self.ClientDataSet1.Last;
self.ClientDataSet1.First;
if self.ClientDataSet1.Locate("TypeOfAirPlan",self.edit1.Text,[]) then exit;
(просто проверить)
← →
Manfred (2004-07-28 15:33) [31]Позиционируется на 1
← →
MU © (2004-07-28 15:51) [32]поле ТypeOfAirPlan какого типа?
← →
Manfred (2004-07-28 15:56) [33]Текстовыый не нулл обязательный не ключевой индексированный без возможности повторения.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.08.22;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.034 c