Показать сообщение отдельно
  #14  
Старый 06.05.2014, 13:48
Аватар для spawn-1212
spawn-1212 spawn-1212 вне форума
Прохожий
 
Регистрация: 03.12.2012
Сообщения: 25
Репутация: 10
Смущение

Цитата:
Сообщение от poli-smen
Похоже что ты не точно описал задание. Карточки они могут быть либо "выданы", либо "невыданы" (третьего не дано). Таким образом если этот запрос возвращает "выданные" карточки, тогда его инверсия должна выдать "невыданные" карточки.

Если же речь идёт о том что есть некий логический диапазон, а в нём имеется поддиапазон выданных карточек и остальные карточки в этом диапазоне не выданы (которые и нужно получить), то делать нужно чуть посложнее (здесь я организовал запрос через параметры):
Код:
ADOQuery2.SQL.Text := 'SELECT Number FROM Lugi WHERE Number >= :n1 AND Number <= :n2 AND Number < :n3 AND Number > :n4';
ADOQuery2.Parameters.ParamByName('n1').Value := 'ААА001'; // Начало диапазона
ADOQuery2.Parameters.ParamByName('n2').Value := 'ААА999'; // Конец диапазона
ADOQuery2.Parameters.ParamByName('n3').Value := 'ААА001'; // Начало поддиапазона
ADOQuery2.Parameters.ParamByName('n4').Value := 'ААА050'; // Конец поддиапазона
Может мы друг друга не поняли.
Попытаюсь объяснить: например, Иванову А.А. выдали на руки карточки с диапазоном ААА050-ААА100 и забили их в БД таблица"Карточки". Этот диапазон выводится с помощью запроса в Edit1.Text:=ААА050 и Edit2.Text:=ААА100. Допустим за сегодня Иванов заполнил свои 12 карточек и сдал, тогда их забивают в БД таблица "Учёт".
Так вот если я выполняю запрос
Код:
ADOQuery2.Sql.Text := 'Select Number From Lugi Where Number >= ' + QuotedStr(Edit1.Text) + ' and Number <= ' + QuotedStr(Edit2.Text);
то выводятся те карточки, которые он уже сдал, а нужно чтобы выпадал список из тех карточек которые у него на руках.
Ответить с цитированием