| 
| 
 | Вопрос # 5 086/ вопрос открыт / | 
 |  Здравствуйте, эксперты!Есть связка ClientDataSet-DataSource-DBGridEh, проблема при сортировке данных в DBGridEh данные в ClientDataSet не сортируются. Нужно их как то там обновить, пробовал ApplyUpdates выдает ошибку "Mising ... provider".
 И еще в таблице для одного из полей нужно сделать контроль дубликатов, сейчас это реализовано вот так: (приложение).
 
 если таблица не сортируется, все работает, если отсортировал, то cdsDList и cdsList получаются разными таблицами. ПОЧЕМУ? и можно ли как то по другому проводить проверку на дубликаты?
 Приложение:Переключить в обычный режим     cdsDList:=TClientDataSet.Create(nil);   cdsDList.Data:=cdsList.Data;   cdsDList.First;   for j:=1 to cdsDList.RecordCount do   begin      cdsList.First;      for i:=1 to cdsList.RecordCount do      begin         showmessage('iiii'+cdsList.FieldByName('POSITION').AsString+'
'+cdsDList.FieldByName('POSITION').AsString);         showmessage(inttostr(j)+' '+inttostr(i));         if (cdsList.FieldByName('POSITION').AsString<>'') and            (cdsList.FieldByName('POSITION').AsString=cdsDList.FieldByName('POSITION').AsString) and            (i<>j) then         begin             exit;         end;      cdsList.Next;      end;      cdsDList.Next;   end;   cdsDList.Free;
 Мини-форум вопросаВсего сообщений: 10; последнее сообщение — 21 марта 2011, 19:15; участников в обсуждении: 3. 
|   | Мережников Андрей (статус: Абитуриент), 14 марта 2011, 17:48 [#1]:в clientdataset данные откуда берутся? Какая БД? Контроль дубликатов можно сделать на уровне БД - достаточно сделать поле POSITION  с признаком UNIQUE. Тогда не надо будет извращаться с циклами. Тем более, что будете сильно удивлены "скоростью" работы Вашего алгоритма на реальных объемах данных. |  
|   | corban (статус: 2-ой класс), 16 марта 2011, 03:30 [#2]:DBGridEh - только отображает содержимое таблицы ClientDataSet; если отсортировать сетку то с самой таблицей ничего не произойдет и передать из DBGridEh в ClientDataSet сортировку нереально. А смысл сортировки данных в ClientDataSet какой? При использовании SQLзапроса можно получить любую выборку данных отсортированную по любому полю... |  
|   | Казаков Николай Константинович (статус: 1-ый класс), 16 марта 2011, 08:25 [#3]:нужно, чтобы данные в поле POSITION были отсортированы по возрастанию, я уже понял, что DBGridEh - только отображает содержимое таблицы ClientDataSet, но в самой CDS они должны как то обновляться, иначе путаница может возникнуть, видим одно, а на самом деле другое, разъясните плииз |  
|   | Мережников Андрей (статус: Абитуриент), 17 марта 2011, 18:15 [#4]:ClientDataSet - это не таблица! Если хотите получить ответ на свой вопрос, то дайте ответ на уточняющие вопросы. |  
|   | Казаков Николай Константинович (статус: 1-ый класс), 18 марта 2011, 08:17 [#5]:в CDS данные формируются в самой программе, где выставить для поля POSITION свойство UNIQUE |  
|   | corban (статус: 2-ой класс), 18 марта 2011, 10:46 [#6]:свойство UNIQUE выставляются для поля на стадии создания таблицы в БД. ClientDataSet подключается к таблице из БД позволяет манипулировать с записями таблицы, сортировка записей по какому либо полю делается для удобочитаемости при выводе информации для пользователя причем данные в самой таблице никаким изменениям не подвергаются. Если не секрет какая БД используется? |  
|   | Казаков Николай Константинович (статус: 1-ый класс), 18 марта 2011, 15:22 [#7]:есть вообще способ отсортировать данные в CDS, в базе мне вообще ничего трогать не надо, только в ClientDataSet |  
|   | Мережников Андрей (статус: Абитуриент), 20 марта 2011, 20:26 [#8]: Цитата (Казаков Николай Константинович): есть вообще способ отсортировать данные в CDS, в базе мне вообще ничего трогать не надо, только в ClientDataSet  есть несколько способов:
 1) прочитать книжку;
 2) прочитать уточняющие вопросы и ответить на них;
 3) сконструировать прибор для чтения мыслей и разослать его всем, кому задаете вопросы.
 |  
|   | Казаков Николай Константинович (статус: 1-ый класс), 21 марта 2011, 08:32 [#9]:я ответил на уточняющие вопросы уже несколько раз читайте выше, здесь повторю еще раз. БД нет! CDS Заполняется вручную, структура определяется в программе и значения полей определяются в цикле, никаких ACCESS, ни каких PARADOX НЕТ! мне нужно просто отсортировать данные. |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |