Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.04.2011, 02:47   #1
us4us
Пользователь
 
Регистрация: 06.04.2011
Сообщений: 33
По умолчанию DBGrid и несколько запросов

Мне нужно выбирать записи по определенному параметру,но этот параметр меняется,потом выбирать придется с помощью цикла. Как сделать что бы записи в DBGrid не обновлялись при каждом запросе? Такое возможно?
us4us вне форума Ответить с цитированием
Старый 25.04.2011, 23:12   #2
us4us
Пользователь
 
Регистрация: 06.04.2011
Сообщений: 33
По умолчанию

может есть альтернативный способ ?
us4us вне форума Ответить с цитированием
Старый 25.04.2011, 23:53   #3
Gulik
Холост/Не замужем
Форумчанин
 
Аватар для Gulik
 
Регистрация: 13.11.2007
Сообщений: 283
По умолчанию

Любезнейший, а не соизволили бы Вы начать свой рассказ с названий компонентов и базы данных которой Вы пользуетесь?
Gulik вне форума Ответить с цитированием
Старый 26.04.2011, 01:28   #4
us4us
Пользователь
 
Регистрация: 06.04.2011
Сообщений: 33
По умолчанию

Цитата:
Сообщение от Gulik Посмотреть сообщение
Любезнейший, а не соизволили бы Вы начать свой рассказ с названий компонентов и базы данных которой Вы пользуетесь?
СУБД Visual FoxPro 9.0


DataSource,ADOQuery,DBGrid

у меня динамическое количество параметров по которым нужно выбирать данные..

Последний раз редактировалось us4us; 26.04.2011 в 01:47.
us4us вне форума Ответить с цитированием
Старый 26.04.2011, 02:39   #5
us4us
Пользователь
 
Регистрация: 06.04.2011
Сообщений: 33
По умолчанию

Код:
for I := 0 to text.Count -1 do
   begin
     //ADOQuery5.Close;
     //ADOQuery5.SQL.Clear;
     sql:='UNION SELECT * FROM table WHERE code LIKE'''+text.Strings[i]+'%''';
     ADOQuery5.SQL.Text:=' SELECT * FROM table WHERE code LIKE'''+text.Strings[0]+'%'''+sql+'';
   end;
         ADOQuery5.Open;
     ADOQuery5.Active:=true;
пытался но ничего не выходит
us4us вне форума Ответить с цитированием
Старый 26.04.2011, 08:37   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

неверно используете UNION
рекомендую почитать о синтаксисе..
вкратце, должно быть:
Код:
SELECT <поля> FROM  WHERE ...
UNION [ALL] <поля> FROM WHERE ...
UNION [ALL] <поля> FROM WHERE ...
....
UNION [ALL] <поля> FROM WHERE ...
1) блоков с UNION может быть сколько угодно (ну в рамках ограничений данной СУБД)
2) <поля> - это перечень полей. Должен быть строго одинаков во всех выборках. использование SELECT * допускается, но только если во всех UNION идёт выборка из одной и той же таблицы (или из таблиц со полностью идентичной структурой)
3) [ALL] - эти ключевые слова можно опускать

Последний раз редактировалось Serge_Bliznykov; 26.04.2011 в 08:40.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 26.04.2011, 12:47   #7
us4us
Пользователь
 
Регистрация: 06.04.2011
Сообщений: 33
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
неверно используете UNION
рекомендую почитать о синтаксисе..
вкратце, должно быть:
Код:
SELECT <поля> FROM  WHERE ...
UNION [ALL] <поля> FROM WHERE ...
UNION [ALL] <поля> FROM WHERE ...
....
UNION [ALL] <поля> FROM WHERE ...
1) блоков с UNION может быть сколько угодно (ну в рамках ограничений данной СУБД)
2) <поля> - это перечень полей. Должен быть строго одинаков во всех выборках. использование SELECT * допускается, но только если во всех UNION идёт выборка из одной и той же таблицы (или из таблиц со полностью идентичной структурой)
3) [ALL] - эти ключевые слова можно опускать
Дело в том что я не знаю сколько у меня будет запросов с UNION. Можно ли как я и пытался сделать, добавлять UNION к запросу в зависимости от длины text?
us4us вне форума Ответить с цитированием
Старый 26.04.2011, 13:16   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ВНИМАНИЕ!
я свой пост структуру запроса написал с ошибкой.
пропущено слово SELECT после union !!!
Код:
SELECT <поля> FROM  WHERE ...
UNION [ALL] SELECT <поля> FROM WHERE ...
UNION [ALL] SELECT <поля> FROM WHERE ...
....
UNION [ALL] SELECT <поля> FROM WHERE ...

Цитата:
Можно ли как я и пытался сделать, добавлять UNION к запросу
можно.
только добавляйте ПРАВИЛЬНО!
первый запрос - только select (без слова union)
потом union и дальше select... from ....
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Несколько запросов к БД artemavd БД в Delphi 8 15.09.2010 08:42
Несколько запросов в одном ADOQuery1 XKsandrX Общие вопросы Delphi 3 31.05.2010 14:28
mysql - несколько запросов (C++ Builder2010) animalshadow Общие вопросы C/C++ 0 31.03.2010 17:17
Помогите написать несколько SQL запросов grinch SQL, базы данных 12 23.03.2009 13:15
несколько запросов SQL Arteom БД в Delphi 3 09.09.2007 23:39