С Новым годом! Форум программистов, компьютерный форум, киберфорум
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/55: Рейтинг темы: голосов - 55, средняя оценка - 4.56
1 / 1 / 0
Регистрация: 08.09.2022
Сообщений: 12
1

Сортировка ADOTable C++ Builder

13.01.2023, 17:59. Показов 10360. Ответов 7

Author24 — интернет-сервис помощи студентам
Всем привет! Столкнулся с проблемой. При попытке поиска по личному номеру или другому числовому полю, возникает ошибка "Аргументы имеют неверный тип выходят за пределы допустимого диапазона". Пожалуйста, помогите решить проблему.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
void __fastcall TForm1::Button1Click(TObject *Sender)
{
switch (ComboBox1->ItemIndex)
 
    {
    case 0: ADOTable1->Filter = "Фамилия LIKE '" + Edit1->Text + "*'";
            ADOTable1->Filtered = !Edit1->Text.IsEmpty();
    break;
    case 1: ADOTable1->Filter = "Имя LIKE '" + Edit1->Text + "*'";
            ADOTable1->Filtered = !Edit1->Text.IsEmpty();
    break;
    case 2: ADOTable1->Filter = "Отчество LIKE '" + Edit1->Text + "*'";
            ADOTable1->Filtered = !Edit1->Text.IsEmpty();
    break;
    case 3: ADOTable1->Filter = "Воинское звание LIKE '" + Edit1->Text + "*'";
            ADOTable1->Filtered = !Edit1->Text.IsEmpty();
    break;
    case 4: ADOTable1->Filter = "Должность LIKE '" + Edit1->Text + "*'";
            ADOTable1->Filtered = !Edit1->Text.IsEmpty();
    break;
    case 5: ADOTable1->Filter = "Личный номер LIKE '" + Edit1->Text + "*'";
            ADOTable1->Filtered = !Edit1->Text.IsEmpty();
    break;
    case 6: ADOTable1->Filter = "Тип имущества LIKE '" + Edit1->Text + "*'";
            ADOTable1->Filtered = !Edit1->Text.IsEmpty();
    break;
    case 7: ADOTable1->Filter = "Инв номер LIKE '" + Edit1->Text + "*'";
            ADOTable1->Filtered = !Edit1->Text.IsEmpty();
    break;
    case 8: ADOTable1->Filter = "Производитель LIKE '" + Edit1->Text + "*'";
            ADOTable1->Filtered = !Edit1->Text.IsEmpty();
    break;
    case 9: ADOTable1->Filter = "Наименование LIKE '" + Edit1->Text + "*'";
            ADOTable1->Filtered = !Edit1->Text.IsEmpty();
    break;
    case 10: ADOTable1->Filter = "Подразделение LIKE '" + Edit1->Text + "*'";
             ADOTable1->Filtered = !Edit1->Text.IsEmpty();
    break;
    case 11: ADOTable1->Filter = "Место хранения LIKE '" + Edit1->Text + "*'";
             ADOTable1->Filtered = !Edit1->Text.IsEmpty();
    break;
}  }
Миниатюры
Сортировка ADOTable C++ Builder   Сортировка ADOTable C++ Builder  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.01.2023, 17:59
Ответы с готовыми решениями:

Builder c++ и mysql, adotable
помогите соединить таблицу из базы данных mysql на phpmyadmin с rad studio builder c++. в этой...

Функция в с++ Builder для удаления записи DBGrid, ADOTAble
Хотел сделать функцию для удаления строк из DBGrid, ADOTAble, код простой, но повторятся бы не...

ADOTable Sort, сортировка с условием
сортирую от меньшего к большему Form8->ADOTable1->Sort = "Дата_завершения DESC"; , необходимо...

Метод "Seek" у ADOTable (С++ Builder 5.0) для MS SQL 2000 ?
Проблема вот в чем... В документации по C++ Builder 5.0 говорится, что метод SEEK работает только...

7
Модератор
9646 / 6254 / 2426
Регистрация: 21.01.2014
Сообщений: 26,676
Записей в блоге: 3
14.01.2023, 04:08 2
Цитата Сообщение от Azujzk Посмотреть сообщение
При попытке поиска по личному номеру
У Вас не поиск, а фильтрация - это разные вещи. Сейчас не помню точно, но, вроде бы, LIKE не работает в фильтрах и применимо только в SQL-запросах...
0
1 / 1 / 0
Регистрация: 08.09.2022
Сообщений: 12
14.01.2023, 04:44  [ТС] 3
То есть реализовать фильтрацию для столбцов с цифрами не получится ?
0
1 / 1 / 0
Регистрация: 08.09.2022
Сообщений: 12
14.01.2023, 11:13  [ТС] 4
Цитата Сообщение от D1973 Посмотреть сообщение
У Вас не поиск, а фильтрация - это разные вещи. Сейчас не помню точно, но, вроде бы, LIKE не работает в фильтрах и применимо только в SQL-запросах.
То есть реализовать фильтрацию для столбцов с цифрами не получится ?
0
Модератор
9646 / 6254 / 2426
Регистрация: 21.01.2014
Сообщений: 26,676
Записей в блоге: 3
14.01.2023, 12:10 5
Цитата Сообщение от Azujzk Посмотреть сообщение
для столбцов с цифрами
LIKE как раз неприменима к числовым полям. Или у Вас, таки, числовые данные находятся в текстовое поле? Какая СУБД у Вас? Если Access какой-нибудь - кидайте проект вместе с базой.
0
1 / 1 / 0
Регистрация: 08.09.2022
Сообщений: 12
14.01.2023, 12:21  [ТС] 6
Цитата Сообщение от D1973 Посмотреть сообщение
Сообщение от Azujzk
для столбцов с цифрами
LIKE как раз неприменима к числовым полям. Или у Вас, таки, числовые данные находятся в текстовое поле? Какая СУБД у Вас? Если Access какой-нибудь - кидайте проект вместе с базой.
А меня база данных Access, я через ADOTable подключил к билдеру.
Вложения
Тип файла: rar CppEquipmentAccounting.rar (18.56 Мб, 17 просмотров)
0
Модератор
9646 / 6254 / 2426
Регистрация: 21.01.2014
Сообщений: 26,676
Записей в блоге: 3
14.01.2023, 15:04 7
1. Если не хотите работать с нормальной СУБД и используете Access - помните, что у MS Office куча версий и не на каждой машине будет та же версия, что и у Вас. А это означает, что такого поставщика данных, который использовали Вы, у человека не будет. Лично у меня вот нет такого поставщика - Microsoft.ACE.OLEDB.16.0 и открыть Вашу программу я не могу.
Решений может быть два:
- вместе со своей программой прикладывать дистрибутивы требуемого ODBC-драйвера для ОС разной битности и заставлять пользователя устанавливать и настраивать его самостоятельно.
- использовать формат базы "Access 2002-2003". Поставщик MS Jet 4.0 OLE DB - имеется в любой ОС, начиная с Windows Vista и гарантированно позволит Вам запустить свою программу даже на ПК, на которых не установлен Access.
Какой вариант развития событий выбрать - дело Ваше...

2. Вот такая вот беда: на моем компе нет УЗ пользователя Azujzk и, соответственно, нет дальнейшего пути, по которому я должен разместить файл БД. Поэтому и программа не может найти файл БД.
Решений может быть два:
- Заставить пользователя завести УЗ пользователя с именем Azujzk, воссоздать структуру каталогов в профиле этой УЗ и разместить там файл БД
- Расположить файл БД рядом с исполняемым модулем Вашего приложения и формировать строку подключения динамически, отталкиваясь от расположения ехе-файла

3. С авторизацией - это ВООБЩЕ ЗАСАДА!!! Так НИКТО не делает! Читать до просветления и делать правильно! Уберите нахрен свою "авторизацию": лучше вообще без нее, чем с такой!

4. Раз уж Вы используете DB-компоненты, используйте их правильно: например, тот же DBComboBox подразумевает отображение данных из какой-либо таблицы-справочника, но уж никак не жесткое заполнение.

5. Не самая лучшая идея - использовать кириллицу в наименованиях объектов БД, а уж кириллица с пробелами - вообще ни в какие ворота.

А в общем и целом Ваша "база данных" - без обид - полнейшая ерунда. Прежде чем браться за приложения такого уровня хотелось бы посоветовать Вам изучить теорию проектирования БД и выучить язык запросов SQL.

В общем - вот:
- переконвертировал БД в формат mdb
- задал динамическую строку подключения. Файл БД должен теперь лежать рядом с ехе-файлом приложения.
- переделал процедуру фильтрации. Пофиксил проблему с неймингом полей.
- отключил, к чертям, такую "авторизацию".
- остальное не трогал, но... Это все надо переделывать! Если задача учебная и Вам надо только сдать и забыть - одно дело, в любом другом случае - это никуда не годно!
Вложения
Тип файла: zip 12345.zip (30.5 Кб, 7 просмотров)
0
1 / 1 / 0
Регистрация: 08.09.2022
Сообщений: 12
15.01.2023, 00:57  [ТС] 8
Уважаемый! Большое спасибо за наставление и за программу, буду изучать. Честно очень благодарен. Постараюсь учесть ваши замечания и изучать материал! Огромное спасибо!!!
0
15.01.2023, 00:57
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.01.2023, 00:57
Помогаю со студенческими работами здесь

Из таблицы ADOTable на одной форме произвести поиск по столбцу и найденное скопировать в ADOTAble другой
Добрый день уважаемые знатоки, сегодня с вами играет студент из Крыма. Внимание вопрос: Необходимо...

Аналог ADOTable из c++ builder на java
Здравствуйте. Не подскажите, для java создан какой нибудь визуальный редактор типа c++ builder, в...

Adotable сортировка
adotable сортировка

Сортировка ADOTABLE
Доброго времени суток. Есть таблица, которая сортируется по полю Имя по алфавиту. Проблема в том,...

Сортировка ADotable
Всем привет. Есть база данных mdb, написал программу на дельфях (ADOconnection+ADOtable+DBgrid) для...

Перманентная сортировка ADOTable
Требуется отсортировать таблицу БД Access. Использую ADOTable1..Sort:='Выражение1 DESC'; Но...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Как написать микросервис на C# с Kafka, MediatR, Redis и GitLab CI/CD
InfoMaster 15.01.2025
В современной разработке программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот подход позволяет разделить сложную систему. . .
Что такое CQRS и как это реализовать на C# с MediatR
InfoMaster 15.01.2025
Концепция CQRS и её роль в современной разработке В современном мире разработки программного обеспечения архитектурные паттерны играют ключевую роль в создании масштабируемых и поддерживаемых. . .
Как настроить CI/CD с Azure DevOps
InfoMaster 15.01.2025
CI/ CD, или непрерывная интеграция и непрерывное развертывание, представляет собой современный подход к разработке программного обеспечения, который позволяет автоматизировать и оптимизировать процесс. . .
Как настроить CI/CD с помощью Jenkins
InfoMaster 15.01.2025
Введение в CI/ CD и Jenkins В современной разработке программного обеспечения непрерывная интеграция (CI) и непрерывная доставка (CD) стали неотъемлемыми элементами процесса создания качественных. . .
Как написать микросервис на Go/Golang с Kafka, REST и GitHub CI/CD
InfoMaster 14.01.2025
Определение микросервиса, преимущества использования Go/ Golang Микросервис – это архитектурный подход к разработке программного обеспечения, при котором приложение состоит из небольших, независимо. . .
Как написать микросервис с нуля на C# с RabbitMQ, CQRS, Swagger и CI/CD
InfoMaster 14.01.2025
В современном мире разработки программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот архитектурный подход предполагает. . .
Как создать интернет-магазин на PHP и JavaScript
InfoMaster 14.01.2025
В современном мире электронная коммерция стала неотъемлемой частью бизнеса. Создание собственного интернет-магазина открывает широкие возможности для предпринимателей, позволяя достичь большей. . .
Как написать Тетрис на Ассемблере
InfoMaster 14.01.2025
Тетрис – одна из самых узнаваемых и популярных компьютерных игр, созданная в 1984 году советским программистом Алексеем Пажитновым. За прошедшие десятилетия она завоевала симпатии миллионы людей по. . .
Как создать игру "Танчики" на Unity3d и C#
InfoMaster 14.01.2025
Разработка игр – это увлекательный процесс, сочетающий в себе творчество и технические навыки. В этой статье мы рассмотрим создание классической игры "Танчики" с использованием Unity3D и языка. . .
Организую платный онлайн микро-курс по доработке Android-клиента Telegram
_Ivana 14.01.2025
Официальная версия и распространенные форки не полностью устраивают? Сделай свою кастомную версию клиента! 4 занятия по 2 часа (2 недели пн, ср 19:00-21:00 по Москве). Первое вводное занятие. . .
Как создать приложение для фитнеса для iOS/iPhone на Kotlin
InfoMaster 14.01.2025
Создание собственного фитнес-приложения — это не только захватывающий, но и полезный процесс, ведь оно может стать вашим верным помощником на пути к здоровому и активному образу жизни. В современных. . .
Как создать приложение магазина для iOS/iPhone на Swift
InfoMaster 14.01.2025
Введение в разработку iOS-приложений Разработка приложений для iPhone и других устройств на базе iOS открывает огромные возможности для создания инновационных мобильных решений. В данной статье мы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru