Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

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

Цитата:
Сообщение от poli-smen
А от чего зависит число знаков? Почему нельзя сделать чтобы все были, например, 7-значные? Вот например это ААА001 и это ААА0001 будет считаться как одно и то же?
Да одно и тоже, просто раньше были 6 значные, потом заканчиваться начали и решили сделать 7 значные, а в базе уже забиты старые
Ответить с цитированием
  #17  
Старый 06.05.2014, 14:50
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от spawn-1212
Может мы друг друга не поняли.
Попытаюсь объяснить: например, Иванову А.А. выдали на руки карточки с диапазоном ААА050-ААА100 и забили их в БД таблица"Карточки".
Каким образом эти карточки помечаются, что они выданы именно Иванову А.А.?
В базе на каждую карточку своя запись или просто в одной записи записан диапазон ААА050-ААА100?
Ответить с цитированием
  #18  
Старый 06.05.2014, 15:14
Аватар для spawn-1212
spawn-1212 spawn-1212 вне форума
Прохожий
 
Регистрация: 03.12.2012
Сообщения: 25
Репутация: 10
По умолчанию

Цитата:
Сообщение от poli-smen
Каким образом эти карточки помечаются, что они выданы именно Иванову А.А.?
В базе на каждую карточку своя запись или просто в одной записи записан диапазон ААА050-ААА100?
Записывается в Таблице "Карточки"? есть поля "Start"- начало диапазона, "Finish" - конец диапазона, "Seria" - серия диапозон, "ID"-уникальный номер, "FIO"-Фамилия
Ответить с цитированием
  #19  
Старый 06.05.2014, 15:27
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от spawn-1212
Записывается в Таблице "Карточки"? есть поля "Start"- начало диапазона, "Finish" - конец диапазона, "Seria" - серия диапозон, "ID"-уникальный номер, "FIO"-Фамилия
Если одна запись в таблице "Карточки" это целый диапазон карточек, тогда что должен вернуть SQL-запрос?
Ответить с цитированием
  #20  
Старый 07.05.2014, 05:34
Аватар для spawn-1212
spawn-1212 spawn-1212 вне форума
Прохожий
 
Регистрация: 03.12.2012
Сообщения: 25
Репутация: 10
По умолчанию

Цитата:
Сообщение от poli-smen
Если одна запись в таблице "Карточки" это целый диапазон карточек, тогда что должен вернуть SQL-запрос?
Вот из этого диапазона создать список и его сверить с БД. Так ни как нельзя?
Ответить с цитированием
  #21  
Старый 07.05.2014, 08:41
Аватар для Freeman
Freeman Freeman вне форума
Местный
 
Регистрация: 05.10.2012
Адрес: Санкт-Петербург
Сообщения: 576
Версия Delphi: 6
Репутация: выкл
По умолчанию

Интересная задача, но автор не хочет ее решить, выдавая информацию по каплям. Опиши, блин, одним постом сразу всю постановку, можно будет подумать.
__________________
Не стоит путать форумы с богадельнями. © Bargest
Ответить с цитированием
  #22  
Старый 07.05.2014, 09:17
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Если я правильно понял речь идёт не об одной таблице (некой первоначально упоминавшейся под именем Lugi), а о двух таблицах "Карточки" и "Учёт". В таблице "Карточки" каждая запись хранит данные о целом диапазоне карточек выданных конкретному человеку, а в таблице "Учёт" каждая запись соответствует конкретной карточке которую человек уже вернул, но в этой таблице нет записей соответствующих карточкам которые человек ещё не вернул, но этот список хочется поиметь исходя из имеющихся данных.

В таком случае можно сделать так. Из таблицы "Карточки" из полей "Start" и "Finish" интересующего человека получаем значения диапазона и на их основе генерируем в список типа TStringList названия всех карточек которые этот человек получил. Потом запросом выбираем из таблицы "Учёт" карточки которые этот человек уже вернул и исключаем из списка TStringList эти карточки. После этого в списке TStringList останутся названия только тех карточек которые человек получил, но ещё не вернул - задача решена.
Ответить с цитированием
  #23  
Старый 07.05.2014, 09:30
Аватар для Freeman
Freeman Freeman вне форума
Местный
 
Регистрация: 05.10.2012
Адрес: Санкт-Петербург
Сообщения: 576
Версия Delphi: 6
Репутация: выкл
По умолчанию

Цитата:
Сообщение от poli-smen
Из таблицы "Карточки" из полей "Start" и "Finish" интересующего человека получаем значения диапазона и на их основе генерируем в список типа TStringList названия всех карточек которые этот человек получил.
Жалко, у меня нет сейчас под рукой Oracle, а то попытался бы решить эту задачу одним запросом. На самом деле ничего сложного в этом нет, я даже объяснить могу.
__________________
Не стоит путать форумы с богадельнями. © Bargest
Ответить с цитированием
  #24  
Старый 07.05.2014, 11:58
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Ну дык я еще когда просил показать структуру данных. Задача предполагает 3 таблицы. Пациент, Карточки, Картотека. А тут похоже только 2 таблицы Пациент,Карточки. Попытка заменить Картотеку одним полем с диапазоном карточек интересна, но нарушает понятие реляционной БД и соответственно напрочь отбрасывает все средства быстрого доступа к данным. Для обработки такого поля придется писать свою библиотеку функций. В итоге кажущаяся простота приводит к сплошным проблемам.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #25  
Старый 15.05.2014, 15:15
Аватар для spawn-1212
spawn-1212 spawn-1212 вне форума
Прохожий
 
Регистрация: 03.12.2012
Сообщения: 25
Репутация: 10
Восклицание

Цитата:
Сообщение от poli-smen
Если я правильно понял речь идёт не об одной таблице (некой первоначально упоминавшейся под именем Lugi), а о двух таблицах "Карточки" и "Учёт". В таблице "Карточки" каждая запись хранит данные о целом диапазоне карточек выданных конкретному человеку, а в таблице "Учёт" каждая запись соответствует конкретной карточке которую человек уже вернул, но в этой таблице нет записей соответствующих карточкам которые человек ещё не вернул, но этот список хочется поиметь исходя из имеющихся данных.

В таком случае можно сделать так. Из таблицы "Карточки" из полей "Start" и "Finish" интересующего человека получаем значения диапазона и на их основе генерируем в список типа TStringList названия всех карточек которые этот человек получил. Потом запросом выбираем из таблицы "Учёт" карточки которые этот человек уже вернул и исключаем из списка TStringList эти карточки. После этого в списке TStringList останутся названия только тех карточек которые человек получил, но ещё не вернул - задача решена.
Подскажи подробней пожалуйста как сделать
Цитата:
Из таблицы "Карточки" из полей "Start" и "Finish" интересующего человека получаем значения диапазона и на их основе генерируем в список типа TStringList названия всех карточек которые этот человек получил.
Я принцип понять не могу

Последний раз редактировалось spawn-1212, 16.05.2014 в 06:53.
Ответить с цитированием
  #26  
Старый 22.05.2014, 07:25
Аватар для spawn-1212
spawn-1212 spawn-1212 вне форума
Прохожий
 
Регистрация: 03.12.2012
Сообщения: 25
Репутация: 10
По умолчанию

Цитата:
Сообщение от spawn-1212
Подскажи подробней пожалуйста как сделать

Я принцип понять не могу
Как создать список от и до я разобрался, а как сравнить два списка и вывести те которые "лишние" не знаю, кто-нибудь может подсказать в какую сторону копать?
Ответить с цитированием
  #27  
Старый 22.05.2014, 07:34
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Понимаю так что из области БД данные вышли на "обычный" уровень и лежат уже напр. в StringList`ах, если это так, то нужно в связке пары циклов исключать совпадающие значения их строк, оставшееся и есть, оно искомое
Ответить с цитированием
  #28  
Старый 22.05.2014, 07:44
Аватар для spawn-1212
spawn-1212 spawn-1212 вне форума
Прохожий
 
Регистрация: 03.12.2012
Сообщения: 25
Репутация: 10
По умолчанию

Цитата:
Сообщение от Alegun
Понимаю так что из области БД данные вышли на "обычный" уровень и лежат уже напр. в StringList`ах, если это так, то нужно в связке пары циклов исключать совпадающие значения их строк, оставшееся и есть, оно искомое
А подробнее можешь пояснить?
Ответить с цитированием
  #29  
Старый 22.05.2014, 07:50
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Образец данных в ваших списках покажите пжлст, попробую даже пример сварганить

З.Ы. Нет времени ждать данных, вот пример как список от совпадений очистить, нужно два мемо, в первом обрабатываемый список, во втором что нужно из него исключить
Код:
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.
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 19:48.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter