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

Можно ли в ADOQuery прописать два запроса?

05.03.2010, 09:38. Показов 5616. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Можно ли в ADOQuery прописать два запроса?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.03.2010, 09:38
Ответы с готовыми решениями:

Построение запроса ADOQuery
Здравствуйте, нужна помощь в построении запроса ADOQuery. Была поставлена такая задача: в таблице PRIHOD есть записи по поступлениям на...

Возврат запроса из ADOQuery
В ADOQuery имеется динамически изменяемый запрос(посредством фильтра) на выборку из MS SQL и отображением результатов в DBGrid. Нужно из...

результат выполения запроса в ADOQuery
Уважаемые форумчане, помогите решить проблему. Хочу вывести значение из таблицы (Access) в текстовое поле, но всё безрезультатно. ...

22
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
05.03.2010, 09:42
AlenaIvanova, а зачем?
0
9 / 9 / 0
Регистрация: 24.02.2010
Сообщений: 175
05.03.2010, 09:57  [ТС]
Дело в том что когда я связываю таблицы например прописываю в ADOQuery
SQL
1
SELECT Predmet.Name, Predmet.Ocenka, Abiturient.Fam, Abiturient.Imya, Abiturient.Otchestvo FROM Predmet, Abiturient WHERE Abiturient.Cod = Predmet.CodAbiturient
затем мне нужно следующее и я в программе пишу так
Delphi
1
2
3
4
5
6
7
8
9
10
procedure TAbiturient.Button7Click(Sender: TObject);
begin
 if Edit1.Text <> '' then
  begin
   DataModule1.ADOQuery1.Close;
   DataModule1.ADOQuery1.SQL.Clear;
   DataModule1.ADOQuery1.SQL.Add('SELECT * FROM Abiturient WHERE SummaBall > ' + Edit1.Text);
   DataModule1.ADOQuery1.Open;
  end;                      
end;
После компиляции у меня таблица пустая

Добавлено через 3 минуты
Понятно что командой
Delphi
1
DataModule1.ADOQuery1.SQL.Clear;
предыдущий запрос стирается и таким образом таблица пустая
0
1866 / 1186 / 192
Регистрация: 27.03.2009
Сообщений: 4,603
05.03.2010, 09:57
что именно нужно чтобы выполнялось?
0
2923 / 844 / 324
Регистрация: 30.04.2009
Сообщений: 2,633
05.03.2010, 09:59
Цитата Сообщение от AlenaIvanova Посмотреть сообщение
предыдущий запрос стирается и таким образом таблица пустая
да он стирается но только после клика, а вы поставили у adoquery Activ=true????
0
9 / 9 / 0
Регистрация: 24.02.2010
Сообщений: 175
05.03.2010, 10:00  [ТС]
Мне нужно чтобы и запрос связывания таблиц выполнялся и запрос по поиску строк у которых баллы меньше заданного значения

Добавлено через 54 секунды
конечно при запуски программы adoquery Activ=true. Но изначально я ставлю в false
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
05.03.2010, 10:00
AlenaIvanova, неужели сложно завести два запроса - один для операций, а второй - как источник данных для грида?
0
9 / 9 / 0
Регистрация: 24.02.2010
Сообщений: 175
05.03.2010, 10:03  [ТС]
Lord_Voodoo, Если вы имеете ввиду два ADOQuery то заводила в этм случаи связывание таблиц не происходит. Опять в DBGrid,e появляются коды
0
1866 / 1186 / 192
Регистрация: 27.03.2009
Сообщений: 4,603
05.03.2010, 10:03
типа такого нужно?
Delphi
1
adoquery1.sql.add('SELECT Predmet.Name, Predmet.Ocenka, Abiturient.Fam, Abiturient.Imya, Abiturient.Otchestvo FROM Predmet, Abiturient WHERE (Abiturient.Cod = Predmet.CodAbiturient) and (abiturien.sumaball>'+edit1.text+')');
0
9 / 9 / 0
Регистрация: 24.02.2010
Сообщений: 175
05.03.2010, 10:06  [ТС]
Сейчас попробую...
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
05.03.2010, 10:06
AlenaIvanova, связывания не происходит, потому что вы запрос пишите неправильно, либо что-то в коде чудите...
0
9 / 9 / 0
Регистрация: 24.02.2010
Сообщений: 175
05.03.2010, 10:25  [ТС]
Lord_Voodoo, Почему не происходит связь? В DBGrid,e связь отображается

Добавлено через 9 минут
Цитата Сообщение от unick12345 Посмотреть сообщение
типа такого нужно?
SQL
1
adoquery1.sql.add('SELECT Predmet.Name, Predmet.Ocenka, Abiturient.Fam, Abiturient.Imya, Abiturient.Otchestvo FROM Predmet, Abiturient WHERE (Abiturient.Cod = Predmet.CodAbiturient) and (abiturien.sumaball>'+edit1.text+')');

Ошибку выдает [Error] UAbitur.pas(146): String literals may have at most 255 elements
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
05.03.2010, 10:26
AlenaIvanova, вы берете один запрос, пишите в нем выборку по нужным таблицам, чтобы отобразить вместо кодов названия, привязываете к дбгриду и забываете про него... а все остальные операции делаете в другом запросе и когда надо - просто подключаете к гриду, после отмены действия возвращаете исходный запрос - никуда никакие коды не денуться...


похоже, что ограничение на длину строки, разбейте ваш запрос на несколько строк
0
1866 / 1186 / 192
Регистрация: 27.03.2009
Сообщений: 4,603
05.03.2010, 10:34
Delphi
1
2
adoquery1.sql.ADD('SELECT Predmet.Name, Predmet.Ocenka, Abiturient.Fam, Abiturient.Imya, Abiturient.Otchestvo FROM Predmet, Abiturient');
adoquery1.sql.add(' WHERE (Abiturient.Cod = Predmet.CodAbiturient) and (abiturien.sumaball>'+edit1.text+')');
0
9 / 9 / 0
Регистрация: 24.02.2010
Сообщений: 175
05.03.2010, 10:40  [ТС]
Lord_Voodoo, Я не поняла. Я работаю с одним и тем же ADOQuery?

Добавлено через 59 секунд
Добавлено через 2 минуты
unick12345, Спасибо большое все получилось
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
05.03.2010, 10:41
AlenaIvanova, один query - для отображения таблицы, второй для остальных манипуляций
0
1866 / 1186 / 192
Регистрация: 27.03.2009
Сообщений: 4,603
05.03.2010, 10:41
AlenaIvanova, В данном случае один запрос выполняет сразу 2 запроса по условия
0
9 / 9 / 0
Регистрация: 24.02.2010
Сообщений: 175
05.03.2010, 10:48  [ТС]
Lord_Voodoo, Работать в разных ADOQuery?

Добавлено через 59 секунд
unick12345, а сколько так запросов можно, т.е сколько связок and можно использовать?

Добавлено через 5 минут
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
05.03.2010, 10:48
AlenaIvanova, связок хоть на все таблицы, and тоже сколько душе угодно... а на счет кол-ва объектов - вы скажите, что вам нужно сделать, я скажу, как это проще организовать

зачем вам вообще таблицы? запросом вяжите данные в кучу...
0
9 / 9 / 0
Регистрация: 24.02.2010
Сообщений: 175
05.03.2010, 10:49  [ТС]
Lord_Voodoo, Я запуталась.
Допустим у меня есть следующие компоненты: ADOAbitura_Tab1, DSAbitura_Tab1, ADOQuery1.

Так вот ADOAbitura_Tab1 я связываю с базой и с таблицей Abiturient.

У DSAbitura_Tab1 в поле DataSet ставлю ADOQuery1 и DBGrid связываю с ADOAbitura_Tab1.

В ADOQuery1 связываю таблицы.

Далее создаю еще один ADOQuery2 для операция. с чем его связывать?

Добавлено через 43 секунды
unick12345, а сколько так запросов можно, т.е сколько связок and можно использовать?
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.03.2010, 10:49
Помогаю со студенческими работами здесь

Выполнение сложного запроса в ADOQuery
Хочу выполнить запрос fmMain.ADODelDel.SQL.Text:='delete from posts where id_pr in (select id_pr where status=''удален'')'; ...

Прописать временно на два года можно?
Добрый вечер. Mогу ли я прописать временно на два года семью друзей - 2 человека. И могут ли они иметь право претендовать на мою...

Можно ли вывести два запроса в одном?
можно ли вывести строки двух таблиц с помощью запроса, к примеру: select row1, row2 from tab1; select otherrow1, otherrow2 from...

Можно ли послать на сервер сразу два запроса
сейчас схема работы с бд такая, подготавливаю запрос к 1 бд и т.д., посылаю(execute) на сервер потом подготавливаю запрос к 2 бд и т.д....

можно ли прочитать результаты хран. процедуры, если она возвращает два запроса ?
то есть в процедуре select чего надо select чего надо и как результаты обоих select получить? был бы один - тогда все понятно, а...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Первый деплой
lagorue 17.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 14.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru