Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/10: Рейтинг темы: голосов - 10, средняя оценка - 4.80
0 / 0 / 1
Регистрация: 11.02.2010
Сообщений: 14

Запрос Delphi+Access

11.02.2010, 08:04. Показов 2067. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!

Столкнулся с такой проблемой. Есть база данных, в базе таблица с большим количеством записей. В таблице 2 поля: Название и Номер. Есть массив с достаточно большим числом элементов (порядка 2000). Требуется извлечь те данные из таблицы, где содержимое поле Номер совпадает с одним из эл-тов массива. Подскажите, как это лучше сделать? Понятно, что при запросе написать в разделе WHERE 2000 раз "OR" не получится. Пытался сравнивать данные отдельно с каждым эл-том массива и добавлять в некоторую временную таблицу, однако скорость работы программы в таком случае ужасна. Какие еще есть варианты? Спасибо за помощь.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.02.2010, 08:04
Ответы с готовыми решениями:

SQL-запрос в Delphi и в Access один и тот же, но в Delphi не работает
ри обращение к базе в Access я использую код: with ADOQueryMain do begin Active:=false; SQL.Clear; SQL.Add('SELECT Code,...

Запрос из Access в Delphi
Помогите создать запрос с помощью ADOQuery!!! Имееются 4 связанные таблицы из access: с полями: Название турнира, Дата проведения. ...

Access+Delphi запрос
Как изменить запрос: SELECT COUNT(max(счет)) cnt FROM Выплаты group by счет HAVING MAX(Дата)< DATE '2011-01-01'; нати количество...

4
 Аватар для Андрей Борисови
714 / 402 / 33
Регистрация: 04.10.2009
Сообщений: 1,686
11.02.2010, 08:27
Внутреннее объединение
Внутренние объединения — наиболее часто встречающийся тип объединений. Они представляют собой запросы, в которых строки одной из объединяемых таблиц соответствуют строкам другой таблицы по значениям в связанных полях. При выполнении запроса с внутренним объединением в операцию включаются только строки, имеющие одинаковые значения в обеих связанных таблицах.

SQL-синтаксис внутреннего объединения

Внутренние объединения в SQL описываются предложением FROM, как показано ниже:
FROM таблица1 INNER JOIN таблица2 ON таблица1.поле1оператор_сравнения таблица2.поле2

Операция INNER JOIN состоит из следующих элементов.
Элемент Описание
таблица1, таблица2 Имена таблиц, записи которых объединяются.
поле1, поле2 Имена связываемых полей. Если поля не числовые, они должны относиться к
одному типу данных (Тип данных. Характеристика поля, определяющая тип
данных, который может содержать это поле. Существуют следующие типы
данных: Boolean, Integer, Long, Currency, Single, Double, Date, String и Variant
(по умолчанию).) и содержать данные одного вида. Имена этих полей могут
быть разными.
оператор_сравнения Любой оператор сравнения: «=», «<», «>», «<=», «>=» или «<>».

Дополнительные сведения о синтаксисе внутренних объединений см. в разделе Операция INNER JOIN.
Справка Аксцесс 2007

т.е. Вы добавляете пустую таблицу в БД, из массива её заполняете, выполняете запрос на Внутреннее объединение и получаете совпадения

или методом перебора каждого-к-каждому... Но тогда используйте функцию loockup (не точно)
1
1263 / 706 / 62
Регистрация: 21.12.2009
Сообщений: 2,256
11.02.2010, 10:29
Цитата Сообщение от mikhea Посмотреть сообщение
Пытался сравнивать данные отдельно с каждым эл-том массива и добавлять в некоторую временную таблицу
1. Думаю, сравнение отдельно с каждым эл-том массива к хорошему результату не приведет
2. добавлять в некоторую временную таблицу - так можно добиться результата при правильной организации временной таболицы и корректном запросе
0
\/
12 / 11 / 1
Регистрация: 11.02.2010
Сообщений: 57
11.02.2010, 20:08
Про индекс в новой таблице, не забудьте)
Ну и опционально group by или distinct пользовать, возможно придется)
0
0 / 0 / 1
Регистрация: 11.02.2010
Сообщений: 14
12.02.2010, 00:22  [ТС]
Спасибо большое, вариант с добавлением массива в таблицу очень помог
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.02.2010, 00:22
Помогаю со студенческими работами здесь

Access и Delphi. Базовый запрос.
Условие задачи: http://s48.***********/i121/1001/be/2fb2009373df.jpg Суть проблемы: совсем не работает базовый запрос, по идее, при...

Параметрический запрос Delphi & Access
Вообщем есть запрос SELECT Фамилия, Имя, Отчество, Дата_рождения, Адрес_проживания, Номер_паспорта, Серия_паспорта, Кем_выдан_Паспорт,...

Запрос в access выполняется, а в delphi нет
Есть запрос в делфи ругается &quot;отсутствует значение для одного или нескольких требуемых параметров&quot; Этот же запрос в access...

Delphi+ADO+access SQL запрос
Добрый день уважаемые програмисты!. Помогите разобраться. Есть таблица в Аксесе: Data Doxod Rasxod Необходимо произвести...

Запрос на создание таблицы в Access из Delphi
В общем, проблема такая. Есть БД в Access, в ней есть запрос на создание таблицы (составить список клиентов, не выплативших кредит). Есть...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru