Компьютерный форум NoWa.cc Здесь может быть Ваша реклама
Правила Форума
редакция от 22.06.2020
Форум .::NoWa.cc::.
Вернуться   Компьютерный форум NoWa.cc > В помощь вебмастеру > Программирование > Delphi

Уважаемые пользователи nowa.cc. Мы работаем для вас более 20 лет и сейчас вынуждены просить о финансовой помощи по оплате за сервер.
Окажите посильную поддержку, мы очень надеемся на вас. Реквизиты для переводов ниже.
Webmoney Webmoney WMZ: Z021474945171 Webmoney WME: E159284508897 Webmoney WMUSDT: T206853643180
Кошелёк для вашей помощи YooMoney 4100117770549562
YooMoney Спасибо за поддержку!

Ответ
 
Опции темы Опции просмотра Language
Старый 25.03.2008, 11:18   #1
Неактивный пользователь
 
Пол:Мужской
Регистрация: 31.01.2008
Сообщений: 37
Репутация: 4
По умолчанию Как проверить запись в ClientDataSet?

Подскажите пожалуйста, как спросить у ClientDataSet, существует ли у него определенная запись, например, содержится ли в колонке Family запись Иванов?
Очень нужно. Заранее спасибо!
Terio вне форума
 
Ответить с цитированием Вверх
Здесь может быть Ваша реклама
Здесь может быть Ваша реклама


Реклама: купить процессор amd ryzen 7 5700xМагазин бытовой техники: газовая плита в квартиру - переходи на сайт ТАЙМТВ!Магазин бытовой техники: sony kd 32w830k - переходи на сайт ТАЙМТВ!Мебельный магазин: угловой стол компьютерный - Переходи на сайт!claude интеграция


Старый 27.03.2008, 18:25   #2
mdanko2000
Неактивный пользователь
 
Пол:Мужской
Регистрация: 10.08.2007
Сообщений: 39
Репутация: 20
По умолчанию Ответ: Как проверить запись в ClientDataSet?

У набора выполнить поиск по нужному полю и всё.
mdanko2000 вне форума
 
Ответить с цитированием Вверх
Старый 30.03.2008, 17:05   #3
Terio
Неактивный пользователь
 
Пол:Мужской
Регистрация: 31.01.2008
Сообщений: 37
Репутация: 4
По умолчанию Ответ: Как проверить запись в ClientDataSet?

Проблема в том, что
ClientDataSet1.Filter('Name', 'Test',[]) равно как и
ClientDataSet1.Locate('Name', 'Test',[])
работает, а вот
ClientDataSet1.Filter('Name', 'Тест',[]) или
ClientDataSet1.Locate('Name', 'Тест',[])
не работает.
Может быть проблема в типе данных ftWideString?
Как тогда программно изменить DataType колонки на ftString? (У меня запрос открывается не сразу, а в процессе работы программы)
Terio вне форума
 
Ответить с цитированием Вверх
Старый 30.03.2008, 17:18   #4
mdanko2000
Неактивный пользователь
 
Пол:Мужской
Регистрация: 10.08.2007
Сообщений: 39
Репутация: 20
По умолчанию Ответ: Как проверить запись в ClientDataSet?

Ну сделай преобразование типа если думаешь что в этом проблема.

Другой вариант спрашивать не у набора а в базе запросом, в этом случае плохо если передача данных на сервер(таблицу) происходит не сразу и в буфере может быть несколько не опубликованых записей.
mdanko2000 вне форума
 
Ответить с цитированием Вверх
Старый 10.08.2009, 11:45   #5
Vasuha
Постоялец
 
Пол:Мужской
Регистрация: 13.03.2008
Адрес: Минск
Сообщений: 257
Репутация: 231
По умолчанию Re: Как проверить запись в ClientDataSet?

Вчера столкнулся, с данной проблемой. Но конкретно в TMemTableEh. Так как никогда не пользовался этими компонентами долго не мог понять почему не работает Lookup и т.д., пока не пошел дебаггером. Как выяснилось с поиском русских букв проблемы. В нете ничего по решению данной проблемы не нашел. И не придумал ничего умного, как в код MemTableEh внести изменения. Изменения выделены красным.(поля типа ftWideString у меня)

Код:
 function CompareField(Field: TField; Value: Variant): Boolean;
  var
    S: string;
  begin
    if (Field.DataType = ftString) or (Field.DataType = ftWideString) then
    begin
      S := Field.AsString;
      if (loPartialKey in Options) then
{$IFDEF CIL}
    Borland.Delphi.System.Delete(S, Length(Value) + 1, MaxInt);
{$ELSE}
    System.Delete(S, Length(Value) + 1, MaxInt);
{$ENDIF}
      if (loCaseInsensitive in Options) then
        Result := AnsiCompareText(S, Value) = 0
      else
        Result := AnsiCompareStr(S, Value) = 0;
    end
    else
      Result := VarEquals(Field.Value, Value);
  end;
Прокомментируйте пожалуйста кто сталкивался или может есть предложения по решению данной проблемы?
__________________
Vasuha вне форума
 
Ответить с цитированием Вверх
Старый 13.02.2010, 17:57   #6
aixay
Новичок
 
Пол:Мужской
Регистрация: 05.01.2010
Сообщений: 19
Репутация: 2
По умолчанию Re: Как проверить запись в ClientDataSet?

Правильно исправил. Либо взять одну из последних версий TMemTableEh
aixay вне форума
 
Ответить с цитированием Вверх
Ответ


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Учетная запись администратора+запись пользователь+программа Wanderer Скорая помощь 2 14.09.2010 10:31
нужно проверить прогу xxdidenxx Visual C++ / С/C++ 15 27.05.2008 00:29
ClientDataSet - арифметическое суммирование Terio Delphi 4 18.04.2008 10:45
ClientDataSet Terio Delphi 4 23.03.2008 09:40
Как проверить хэш andrei_a P2P-системы & Soft 2 25.09.2007 20:09

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 15:27. Часовой пояс GMT +3.


Copyright ©2004 - 2026 NoWa.cc

Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2026, vBulletin Solutions, Inc. Перевод: zCarot
Время генерации страницы 0.05268 секунды с 11 запросами