Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

TClientDataSet.Locate ничего не находит [D7, Access]


Страницы:   1 2

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 приложение? Может ты не на тот грид смотришь? попробуй месагу выдавать


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо