![]() |
|
| Правила Форума редакция от 22.06.2020 |
|
|||||||
|
|
Окажите посильную поддержку, мы очень надеемся на вас. Реквизиты для переводов ниже. |
|
![]() |
|
|
Опции темы | Опции просмотра |
Language
|
|
|
#1
|
|
Неактивный пользователь
Пол:
Регистрация: 31.01.2008
Сообщений: 37
Репутация: 4
|
Подскажите пожалуйста, как спросить у ClientDataSet, существует ли у него определенная запись, например, содержится ли в колонке Family запись Иванов?
Очень нужно. Заранее спасибо! |
|
|
|
| Реклама: | купить процессор amd ryzen 7 5700x | Магазин бытовой техники: газовая плита в квартиру - переходи на сайт ТАЙМТВ! | Магазин бытовой техники: sony kd 32w830k - переходи на сайт ТАЙМТВ! | Мебельный магазин: угловой стол компьютерный - Переходи на сайт! | claude интеграция |
|
|
#2
|
|
Неактивный пользователь
Пол:
Регистрация: 10.08.2007
Сообщений: 39
Репутация: 20
|
У набора выполнить поиск по нужному полю и всё.
|
|
|
|
|
|
#3
|
|
Неактивный пользователь
Пол:
Регистрация: 31.01.2008
Сообщений: 37
Репутация: 4
|
Проблема в том, что
ClientDataSet1.Filter('Name', 'Test',[]) равно как и ClientDataSet1.Locate('Name', 'Test',[]) работает, а вот ClientDataSet1.Filter('Name', 'Тест',[]) или ClientDataSet1.Locate('Name', 'Тест',[]) не работает. Может быть проблема в типе данных ftWideString? Как тогда программно изменить DataType колонки на ftString? (У меня запрос открывается не сразу, а в процессе работы программы) |
|
|
|
|
|
#4
|
|
Неактивный пользователь
Пол:
Регистрация: 10.08.2007
Сообщений: 39
Репутация: 20
|
Ну сделай преобразование типа если думаешь что в этом проблема.
Другой вариант спрашивать не у набора а в базе запросом, в этом случае плохо если передача данных на сервер(таблицу) происходит не сразу и в буфере может быть несколько не опубликованых записей. |
|
|
|
|
|
#5
|
|
Постоялец
![]() ![]() Пол:
Регистрация: 13.03.2008
Адрес: Минск
Сообщений: 257
Репутация: 231
|
Вчера столкнулся, с данной проблемой. Но конкретно в 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;
__________________
|
|
|
|
|
|
#6
|
|
Новичок
![]() Пол:
Регистрация: 05.01.2010
Сообщений: 19
Репутация: 2
|
Правильно исправил. Либо взять одну из последних версий TMemTableEh
|
|
|
|
![]() |
Похожие темы
|
||||
| Тема | Автор | Раздел | Ответов | Последнее сообщение |
| Учетная запись администратора+запись пользователь+программа | 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 |
|
|