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

Выборка из двух таблиц и копирование информации в третью

11.01.2017, 21:01. Показов 1686. Ответов 5

Студворк — интернет-сервис помощи студентам
Суть: есть 3 таблицы, все они хранятся в access, через delphi нужно сделать выборку из двух таблиц и скопировать информацию из полей в третью.
Таблицы orders и drivers объединить и скопировать данные в Лист, названия полей соответствуют.
orders (adoquery2+datasource1)
-id_or
-adresP
-adresR
-done(логическое поле true/false)
drivers (adoquery3+datasource3)
-id_dr
Лист(adoquery1+datasourse2)
-id_list (автоинкрементное)
-id_or
-adresP
-adresR
-id_dr
Все таблицы подключены через ADOConnection+ADOQuery+DataSourse и отображаются через dbGrid'ы. Сначала данные в таблице orders фильтруются через запрос
Delphi
1
'select * from orders where done=false'
Дальше в два edit'а записываются id_or и id_dr, то есть строки, которые требуется объединить и перенести, и нажимается кнопка, на которой должен быть запрос.
В гугле ничего не нашел, а может нашел и не понял, прошу помочь(
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.01.2017, 21:01
Ответы с готовыми решениями:

Данные двух таблиц в третью
Привет всем. Помогите плизззз) у меня БД Турагенство. Имеется таблица Клиент(Ф.И.О., Возраст, Пол, Ном.удост), и таблица...

Информацию из двух таблиц скопировать в третью
Подскажите пожалуйста как выбрать и скопировать информацию из двух таблиц в третью, причем из таблиц нужно брать информацию из одного...

Слияние двух таблиц в третью (Delphi7 + access)
В общем из двух таблиц делаю выборку, в итоговую таблицу не добавляються все поля которые есть в выборке из двух таблиц ... Как сделать так...

5
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
11.01.2017, 23:57
зачем тогда гриды с таблицами orders и drivers, если id-ы записей потом вводить в ручную, в Еdit-ы?
нужен ADOCommand1 с CommandText
SQL
1
2
3
4
INSERT INTO Лист(id_or, adresP, adresR, id_dr) 
  SELECT orders.id_or, orders.adresP, orders.adresR, drivers.id_dr  
  FROM orders JOIN drivers ON  orders.id_or = :id_or AND drivers.id_dr = :id_dr  
WHERE orders.done=FALSE
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
procedure TForm3.Button1Click(Sender: TObject);
begin
 
  ADOCommand1.Parameters.ParamByName('id_or').Value := StrToInt(Edit2.Text);
  //или
  ADOCommand1.Parameters.ParamByName('id_or').Value :=
    ADOQuery2.FieldByName('id_or').Value;
 
  ADOCommand1.Parameters.ParamByName('id_dr').Value := ...
  ADOCommand1.Execute;
  adoquery1.Close;
  adoquery1.Open;
end;
0
0 / 0 / 0
Регистрация: 13.12.2016
Сообщений: 13
12.01.2017, 14:08  [ТС]
Цитата Сообщение от YuryK Посмотреть сообщение
зачем тогда гриды с таблицами orders и drivers, если id-ы записей потом вводить в ручную, в Еdit-ы?
Гриды нужны для наглядности таблиц, по идее, условный диспетчер фильтрует записи по False, выбирает одну из появившихся, смотрит id_or, рядом grid с id_dr, выбирает водителя, вводит id-ы заказа и водителя в edit-ы и нажимает записать(в таблицу Лист), то есть эта запись будущий простенький путевой лист. Можно сделать и без edit-ов, но я не нашел как копировать строки, на которых находятся курсоры в grid-ах, уже без edit-ов диспетчер выбирает заказ и водителя и сразу по нажатию кнопки заносить в Лист.

В общем, кинул на форму ADOCommand1, в Commandtext записал этот запрос, в Parameters создал два параметра - один Id_or, другой Id_dr. На кнопку записал
Delphi
1
2
3
4
5
6
7
8
9
procedure TForm13.Button2Click(Sender: TObject);
  begin
    ADOCommand1.Parameters.ParamByName('Id_or').Value := StrToInt(Edit1.Text);
    ADOQuery2.FieldByName('Id_or').Value;
    ADOCommand1.Parameters.ParamByName('Id_dr').Value := StrToInt(Edit2.Text);
    ADOCommand1.Execute;
    adoquery1.Close;
    adoquery1.Open;
  end;
Теперь пишет "Ошибка синтаксиса в предложении FROM" после нажатия.
0
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
12.01.2017, 14:40
Цитата Сообщение от yasmogu Посмотреть сообщение
но я не нашел как копировать строки, на которых находятся курсоры в grid-ах
в приведенном коде был второй вариант как взять значение поля из текущей записи запроса, отображаемого в гриде

Цитата Сообщение от yasmogu Посмотреть сообщение
в Parameters создал два параметра
они там сами должны были появиться, если не ошибаюсь

Цитата Сообщение от yasmogu Посмотреть сообщение
Ошибка синтаксиса в предложении FROM
тут уж сам, у тебя и база и программа, здесь только экстрасенс поможет. А Создавать базу лень.
0
0 / 0 / 0
Регистрация: 13.12.2016
Сообщений: 13
12.01.2017, 15:45  [ТС]
Цитата Сообщение от YuryK Посмотреть сообщение
в приведенном коде был второй вариант как взять значение поля из текущей записи запроса, отображаемого в гриде
так через edit-ы же все равно.
Цитата Сообщение от YuryK Посмотреть сообщение
они там сами должны были появиться, если не ошибаюсь
да, сделал заново, появились сами.
Цитата Сообщение от YuryK Посмотреть сообщение
тут уж сам, у тебя и база и программа, здесь только экстрасенс поможет. А Создавать базу лень.
так ведь после того как записал в commandtext ваш запрос это стало выходить.
Мне все еще нужна помощь)
0
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
12.01.2017, 17:40
Цитата Сообщение от yasmogu Посмотреть сообщение
так через edit-ы же все равно.
где?
Цитата Сообщение от YuryK Посмотреть сообщение
ADOCommand1.Parameters.ParamByName('id_o r').Value :=
* * ADOQuery2.FieldByName('id_or').Value;
Попробуй в аксе выполнить запрос на вставку, заменив параметры на константы. Может там синтаксис другой. Или базу выкладывай.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.01.2017, 17:40
Помогаю со студенческими работами здесь

Выборка из двух таблиц
имеется таблица sales(ключевое поле код заказа со счетчиком) и таблица pokypatel, связанные по полю код покупателя, мне нужно сделать cql...

Связка двух таблиц, выборка, ADO
Добрый день! Есть 2 таблицы в Access: клиенты и заказы. В Access связь между "клиенты.личный номер" и "заказы.№ клиента"....

Сравнение двух таблиц и копирование в третью таблицу разницу в данных
Здравствуйте уважаемые форумчане и все спецы по Access. Выкладываю базу с надеждой на вашу помощь. Есть 2 таблицы. Из первой копируются все...

Получить из двух таблиц третью
Добрый день. Пишу с нуля интернет магазин на PHP Codeigniter. Учусь. На данном этапе работаю над корзиной пользователя. Пользователь на...

Как из двух таблиц добавить значения в третью?
Всем привет! Я совсем не разбираюсь в БД, хоть вроде задача проста но возникают проблемы. Есть две таблицы "Конденсаторы" и...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru