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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 05.11.2010, 11:26   #11
WALL
Пользователь
 
Регистрация: 04.10.2010
Сообщений: 67
По умолчанию

Вот еще один мой вариант он идет, вот только он считывает только 1 сторку таблицы, и выводит сообщение по первому врачу. Как сделать чтобы считывал все строки таблицы.
Код:
var
i: integer;
a: integer;
ss: string;
begin
a:=CompareDate(Form2.ADOQuery2.FieldByName('Дата_завершения').AsDateTime, Now);
ss:=Form2.ADOQuery2.FieldByName('Врач').AsString;
if a=-1 then MessageDlg('Пройдите врачей:'+#13#10+ss+id,mtInformation,[mbOK],0);
end;
WALL вне форума
Старый 05.11.2010, 11:34   #12
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

можно в цикле.
ADOQuery2.First;
while not ADOQuery2.EOF do begin
... тут Ваш код сравнения...
ADOQuery2.Next; {перейти на следующую запись в датасете}
end;

Но Вы абсолютно зря выбрали этот путь и отказались от использования параметрического запроса (т.е. запроса, куда даты передаются в качестве параметра).
Проблемы у Вас возникают из-за того, что Вы переписываете часть запроса! Переписывайте запрос целиком!

Выложите Ваш исходный проект (целиком форму) - разберёмся, где у Вас ошибка. (только, если будете выкладывать проект, предварительно запакуйте его в архив)!
Serge_Bliznykov вне форума
Старый 05.11.2010, 11:46   #13
WALL
Пользователь
 
Регистрация: 04.10.2010
Сообщений: 67
По умолчанию

скинул форму посмотрите пожалуйста
Вложения
Тип файла: rar дип.rar (2.66 Мб, 7 просмотров)
WALL вне форума
Старый 05.11.2010, 12:43   #14
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Код:
procedure TForm2.FormActivate(Sender: TObject);
begin
  if ADOQuery2.Active then form2.ADOQuery2.Close;

  ADOQuery2.SQl.Text :=
    'select * from med '+
    '  Where [дата_завершения] between :Dat1 and :Dat2;';

   ADOQuery2.Parameters[0].DataType:=ftDate;
   ADOQuery2.Parameters[0].Value:=Date;
   ADOQuery2.Parameters[1].DataType:=ftDate;
   ADOQuery2.Parameters[1].Value:=Date;
   ADOQuery2.open;

   if (ADOQuery2.RecordCount>=1) then
        MessageDlg ('Нужно пройти врача', mtInformation,[mbOK],0)
end;
Попутно замечания.

1) Грамматические ошибки. Это же просто жуть какая-то..
Вы найдите друга/подругу/маму/папу/знакомого, который знает русский язык. Так, навскидку:
Медецинская карта
Данные мед.персоонала
теперь в БД:
деетсестра
заведуюшая
гениколог (правильно - Гинеколог)
профтолог (если не ошибаюсь, речь идёт о Проктологе)

2) на форме просмотра данных мед.персонала вместо мобильного телефона отображается стаж

3) не уверен, может я и ошибаюсь, но Вам надо бы подумать, как корректнее работать с датой завершения (кстати, интуитивно не понятно, дата завершения чего? Врача? Обследования? Лечения? ). Дело в том, что если дата завершения меньше текущей, у Вас это никак не будет обрабатываться. Если надо - подумайте как это сделать.
Serge_Bliznykov вне форума
Старый 05.11.2010, 12:55   #15
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Хочу добавить...
1. Почему таблица пройденых/непройденых врачей никак не связана с таблицей пациентов? Они все в одно и то же время проходили одних и тех же врачей?
Имхо, последний запрос должен показать каких врачей должны пройти КАКИЕ ИМЕННО пациенты.
2. Задавай компонентам осмысленные названия. Такие имена как Form2, ADOQuery1, RadioButton1 и т.д. не есть гуд.
_SERGEYX_ вне форума
Старый 05.11.2010, 13:02   #16
WALL
Пользователь
 
Регистрация: 04.10.2010
Сообщений: 67
По умолчанию

Извените может уже надоел, в этом сообщении как сделать ниже чтобы выводил список которых врачей надо пройти. Вопрос по поводу связи между таблицами как сделать ? через ADOTable знаю, а вот как через ADOQuery. Спс за помощь !!!

Последний раз редактировалось WALL; 05.11.2010 в 13:07.
WALL вне форума
Старый 05.11.2010, 15:49   #17
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ещё одна ошибка в проектировании БД.
Все таблицы ОБЯЗАТЕЛЬНО должны иметь ключевое поле.
Хотите, можете делать его типа "Счётчик", чтобы не заморачиваться с тем, как его получать и поддерживать целостность.
Но ключевое поле в каждой таблице должно быть ОБЯЗАТЕЛЬНО!!
Serge_Bliznykov вне форума
Старый 05.11.2010, 16:20   #18
WALL
Пользователь
 
Регистрация: 04.10.2010
Сообщений: 67
По умолчанию

оно есть ключевое поле
WALL вне форума
Старый 05.11.2010, 17:33   #19
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
оно есть ключевое поле
Шутите?
Ну и как называется ключевое поле в таблице med?
А в таблице Pitanie ?
А в таблице pitanie2 ?

впрочем, что это я?!...
Раз у Вас со структурой таблиц всё в порядке, то зачем я буду разубеждать Вас в обратном?!
я и так уже всё сказал...
Serge_Bliznykov вне форума
Старый 05.11.2010, 17:40   #20
WALL
Пользователь
 
Регистрация: 04.10.2010
Сообщений: 67
По умолчанию

в med ключевое поле код_к так и в таблице сотрудники, а pitanie и pitanie2 это две разные таблицы
WALL вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Преобразовать дату Nekr0n Помощь студентам 0 09.10.2010 18:54
Запрос с CASE переделать в запрос с PIVOT (MS SQL Server 2005) Машуля SQL, базы данных 4 06.05.2010 21:09
Преобразовать в дату Marvel Microsoft Office Excel 21 22.01.2009 06:42
запрос ссылается на несвязанный с ним запрос kolebatel SQL, базы данных 0 11.06.2008 12:50