Nano Hash - криптовалюты, майнинг, программирование

Оператор неприменим к этому типу операнда При фильтрации таблицы

Я пытаюсь отфильтровать таблицу с двумя разными фильтрами, чтобы при нажатии кнопки отображались только записи с определенным Job_ID и с типом «Частный». у меня есть следующий код:

if CBSearchType.Text = 'Private' then
begin
DBTravel.DataSource.DataSet.DisableControls;
            DBTravel.DataSource.DataSet.Filtered := False;
            DBTravel.DataSource.DataSet.Filter := ('Job_ID = '+edtAddJobID.Text) AND       ('Type = '+QuotedStr('Private'));
            DBTravel.DataSource.DataSet.Filtered := True;
            DBTravel.DataSource.DataSet.First;
            DBTravel.DataSource.DataSet.EnableControls;
end;

однако, когда я пытаюсь скомпилировать, отображается сообщение об ошибке «Оператор не применим к этому типу операнда», какие-либо предложения? Благодарность

04.04.2012

Ответы:


1

Свойство фильтра должно быть строкой.

DBTravel.DataSource.DataSet.Filter := Format('(Job_ID =%s) AND (Type=%s)',[edtAddJobID.Text,QuotedStr('Private')]);
04.04.2012
  • Job_ID кажется числовым, а edtAddJobID — полем редактирования. Для повышения безопасности типов и обработки ошибок пользовательского ввода используйте преобразование строки в целое число, а затем используйте целочисленное значение в функции формата с помощью %d: (Job_ID = %d) AND ... 04.04.2012
  • следуя тому же коду, я сделал следующее изменение DBTravel.DataSource.DataSet.Filter := Format('(Job_ID =%s) AND (Mode =%s)',[edtAddJobID.Text,edtSearchMode.Text]); Записи режима представляют собой строку, например «Автомобиль», «Поезд». Однако, когда я запускаю программу, вхожу в режим и нажимаю кнопку, она говорит, что аргументы имеют неправильный тип, в чем разница? 05.04.2012
  • Когда вы сравниваете строковое поле, вы должны указать строку для сравнения, попробуйте это: DBTravel.DataSource.DataSet.Filter := Format('(Job_ID =%s) AND (Mode =%s)',[edtAddJobID.Text,QuotedStr(edtSearchMode.Text)]); 05.04.2012

  • 2

    Я полагаю, что Filter это строка. Следовательно, вы должны дать ему строку.

    '(Job_ID = ' + edtAddJobID.Text + ') AND (Type = ' + QuotedStr('Private') + ')';
    
    04.04.2012
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..