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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.06.2012, 18:20   #31
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,210
По умолчанию

С учетом твоих замечаний, Аватар, в остальном код правильный?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 08.06.2012, 18:54   #32
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Артем я не знаю, что там нужно сделать. Вот например - что находится в строках SL. Если там что-то типа "'QQ','BB','GG'", то возможжно насчет ненадобности IN я не прав. Дальше - ни при каких обстоятельствах не стал бы SQL-запрос в цикле выполнять. С моей точки зрения это нонсес. Всегда можно найти решение для получения нужной информации одним запросом, пусть даже она будет избыточна.
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 08.06.2012, 18:58   #33
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,210
По умолчанию

Цитата:
Вот например - что находится в строках SL.
Там, например, находятся значения:
Первая категория
Вторая категория
Третья категория
Цитата:
Дальше - ни при каких обстоятельствах не стал бы SQL-запрос в цикле выполнять.
Я по-всякому пробовал. Подскажи как?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 08.06.2012, 19:07   #34
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

В цикле ты обращаешься к одной таблице - это уже плюс. Показывай ее структуру. Сколько там записей всего возможно? Если речь идет о нескольких сотнях - то не вижу ничего страшного, если выдернуть однократно запросом все записи, а в проге уже разбираться, какие обрабатывать, а какие пропустить. Дальше - структуры возможно мало и потребется словесное описание того, что там находится, чтобы придумать условие выборки. Возможно структуру прийдется изменить
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 08.06.2012, 19:50   #35
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,210
По умолчанию

Вот структура таблиц. Писана на "коленке". В главную таблицу заносятся (в процессе работы с программой) значения из таблицы Категории. Нужно запросом из таблицы Главная выбрать все записи, где в главной таблице поле KATEGORIY содержит все значения которые есть в поле KATEGORIYNAME в таблице Категория.
Изображения
Тип файла: jpg Главная.jpg (15.4 Кб, 118 просмотров)
Тип файла: jpg Категории.jpg (11.9 Кб, 118 просмотров)
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 08.06.2012, 20:11   #36
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Этот запрос за один раз выберет все, что нужно и ни каких запросов в цикле
Код:
SELECT G.*
  FROM Главная G,Категории K
  WHERE G.KATEGORIY=K.KATEGORIY
  ORDER BY G.KATEGORIY
Цитата:
получаю список значений в поле, для которого будет делаться условие
Этот запрос тоже не нужен
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 08.06.2012, 20:13   #37
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,210
По умолчанию

Да сортировку можно не делать
А что значит вот это?
Код:
SELECT G.*
В Firebird будет намально работать?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 08.06.2012, 20:19   #38
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

G синоним таблицы (еще называют алиасами), так же как и K. Иначе вместо их пришлось бы писать имена таблиц, а лень, иногда и не возможно без синонимов обойтись. Поддерживают все знакомые мне СУБД
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 08.06.2012, 20:53   #39
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,210
По умолчанию

Ну тогда твой запрос содержит одну неточность? Вот так вот надо же:
Код:
SELECT G.*
  FROM Главная G,Категории K
  WHERE G.KATEGORIY=K.KATEGORIYNAME
  ORDER BY G.KATEGORIY
поля-то в таблицах по-разному называются
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 08.06.2012, 20:55   #40
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
Вот так вот надо же
artemavd, +1
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Очистка сразу нескольких StringGrid Artamos Компоненты Delphi 7 13.05.2011 13:58
Установка нескольких атрибутов сразу Shouldercannon Общие вопросы Delphi 7 01.05.2011 22:49
обращение к именам компонентов в цикле JK0 Помощь студентам 7 23.09.2010 14:10
заполнение сразу нескольких однотипных значений Domanoff БД в Delphi 2 22.04.2010 13:37
Создание сразу нескольких txt файлов Nice42ru Помощь студентам 11 11.02.2010 18:35