|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#16
|
||||
|
||||
Цитата:
|
#17
|
||||
|
||||
Цитата:
В базе на каждую карточку своя запись или просто в одной записи записан диапазон ААА050-ААА100? |
#18
|
||||
|
||||
Цитата:
|
#19
|
||||
|
||||
Цитата:
|
#20
|
||||
|
||||
Цитата:
|
#21
|
||||
|
||||
Интересная задача, но автор не хочет ее решить, выдавая информацию по каплям. Опиши, блин, одним постом сразу всю постановку, можно будет подумать.
Не стоит путать форумы с богадельнями. © Bargest |
#22
|
||||
|
||||
Если я правильно понял речь идёт не об одной таблице (некой первоначально упоминавшейся под именем Lugi), а о двух таблицах "Карточки" и "Учёт". В таблице "Карточки" каждая запись хранит данные о целом диапазоне карточек выданных конкретному человеку, а в таблице "Учёт" каждая запись соответствует конкретной карточке которую человек уже вернул, но в этой таблице нет записей соответствующих карточкам которые человек ещё не вернул, но этот список хочется поиметь исходя из имеющихся данных.
В таком случае можно сделать так. Из таблицы "Карточки" из полей "Start" и "Finish" интересующего человека получаем значения диапазона и на их основе генерируем в список типа TStringList названия всех карточек которые этот человек получил. Потом запросом выбираем из таблицы "Учёт" карточки которые этот человек уже вернул и исключаем из списка TStringList эти карточки. После этого в списке TStringList останутся названия только тех карточек которые человек получил, но ещё не вернул - задача решена. |
#23
|
||||
|
||||
Цитата:
Не стоит путать форумы с богадельнями. © Bargest |
#24
|
||||
|
||||
Ну дык я еще когда просил показать структуру данных. Задача предполагает 3 таблицы. Пациент, Карточки, Картотека. А тут похоже только 2 таблицы Пациент,Карточки. Попытка заменить Картотеку одним полем с диапазоном карточек интересна, но нарушает понятие реляционной БД и соответственно напрочь отбрасывает все средства быстрого доступа к данным. Для обработки такого поля придется писать свою библиотеку функций. В итоге кажущаяся простота приводит к сплошным проблемам.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#25
|
||||
|
||||
Цитата:
Цитата:
Последний раз редактировалось spawn-1212, 16.05.2014 в 06:53. |
#26
|
||||
|
||||
Цитата:
|
#27
|
||||
|
||||
Понимаю так что из области БД данные вышли на "обычный" уровень и лежат уже напр. в StringList`ах, если это так, то нужно в связке пары циклов исключать совпадающие значения их строк, оставшееся и есть, оно искомое
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#28
|
||||
|
||||
Цитата:
|
#29
|
||||
|
||||
Образец данных в ваших списках покажите пжлст, попробую даже пример сварганить
З.Ы. Нет времени ждать данных, вот пример как список от совпадений очистить, нужно два мемо, в первом обрабатываемый список, во втором что нужно из него исключить Код:
procedure TForm1.Button1Click(Sender: TObject); var sl, sl1: TStrings; i,b : integer; begin sl:= TStringList.Create; sl1:= TStringList.Create; sl.Assign(memo1.Lines); sl1.Assign(memo2.Lines); for i:= sl.Count-1 downto 0 do for b:= 0 to sl1.Count-1 do if sl[i] = sl1[b] then sl.Delete(i); memo1.Lines.Assign(sl); sl.Free; sl1.Free; end; Я не понял Вашего вопроса, но всё же Вам на него отвечу! Последний раз редактировалось Alegun, 22.05.2014 в 08:10. |