Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
8 / 8 / 1
Регистрация: 28.11.2011
Сообщений: 84

Delphi, Firebird, IBExpert, запросы

03.05.2014, 18:42. Показов 2272. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток! Очень нужна помощь в создании и внедрении различных запросов в программку написанную на Delphi (у меня 7). СУБД - FireBird 2.5, сама база в IBExpert (2011), запросы тестить тоже на нем.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.05.2014, 18:42
Ответы с готовыми решениями:

Delphi. FireBird. IBExpert. Приложение
Помогите пожалуйста разобраться... 1) можно ли в одной таблице прописать вычисляемое поле, которое находит сумму данных из поля другой...

Совместимость MySQL, IBExpert и Firebird
Здравствуйте! Не ругаются ли между собой программы - MySQL, IBExpert и Firebird? Понятно, что IBExpert без Firebird не работает. Если на...

Выбор поставщика при соединении базы (Firebird), ibexpert к deiphi
добрый день. подскажите пожалуйста . Я хотела бы присоединить таблицу к форме. выбираю компонент TADOconnection, нажимаю 2 раза, выбираю...

7
0 / 0 / 0
Регистрация: 28.04.2014
Сообщений: 6
03.05.2014, 23:31
Какие запросы, поподробней можно?
0
8 / 8 / 1
Регистрация: 28.11.2011
Сообщений: 84
04.05.2014, 15:03  [ТС]
Конечно можно.

Допустим есть база данных с таблицами ТаблицаД и ТаблицаР (Д-дочерняя, Р-родительская). В ТаблицаД (с первичным ключем PK_ТаблицаД) есть множество различных полей, но нас интересует одно - с датой (в дальнейшем именуем его полем Дата в таблице ТаблицаД). У каждой записи ТаблицыД есть поле (внешний ключ, в дальнейшем FK_ТаблицаД), содержащее первичный ключ ТаблицыР (в дальнейшем PK_ТаблицаР).

А теперь вопрос к знатокам - какую процедуру написать, что бы при её запуске проверялось поле Дата ТаблицыД на актуальность даты (т.е. если дата либо больше, либо равна текущей дате), и если условие не выполняется, то из ТаблицыД удалялась запись, в которой поле Дата не прошло условие, а так же из ТаблицыР удалялась запись, у которой PK_ТаблицаР = FK_ТаблицаД(удаляемой записи из ТаблицыД).
0
 Аватар для arni
914 / 879 / 62
Регистрация: 06.01.2010
Сообщений: 2,367
Записей в блоге: 6
04.05.2014, 17:22
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
CREATE PROCEDURE "ОЧЕНЬ_ОЧЕНЬ_СТРАННАЯ ПРОЦЕДУРА"
AS
DECLARE variable PK TYPE OF COLUMN "ТаблицаД"."PK_ТаблицаД";
DECLARE variable FK TYPE OF COLUMN "ТаблицаД"."FK_ТаблицаД";
BEGIN
  FOR
    SELECT "PK_ТаблицаД", "FK_ТаблицаД"
      FROM "ТаблицаД"
     WHERE "Дата"<CURRENT_DATE
      INTO :PK, :FK
  do BEGIN
    DELETE 
      FROM "ТаблицаД" 
     WHERE "PK_ТаблицаД" = :ID;
    DELETE 
      FROM "ТаблицаР"
     WHERE "PK_ТаблицаР" = :FK;
  END
END
p.s. процедура названа "странной", т.к. никто никогда не удаляет запись в родительской таблице (чаще справочник) после удаления записи в дочерней таблице. Наоборот - сплошь и рядом, но не так, как вы сформулировали. Представьте, что у вас две таблицы "Книги" и "Жанры". Книга содержит ссылку на жанр. Теперь задача - найти все книги, выпущенные до 2000 года, удалить их, и заодно удалить из справочника жанры, связанные с этими книгами. Бред, нет ли?
1
8 / 8 / 1
Регистрация: 28.11.2011
Сообщений: 84
06.05.2014, 00:25  [ТС]
arni, полностью с Вами согласна! Про жанры и книги... но надо именно так как я написала.
Спасибо за процедурку - подшаманила - работает!
Кто будет пользоваться ей - аккуратнее. А то :ID туда ошибочно попало и сперва надо удалять запись родительской таблицы, а потом дочерней - а то так заругается .

Добавлено через 15 минут
Вот еще вопрос созрел. Работаю я с заполнением данных таблицыД на форме1 ( к примеру). ТаблицаД является дочерней, заполнила в ней все кроме внешнего ключа. Перехожу на форму2, где начинаю создавать запись родительской таблицыР. Заполнила все, сохранила, форма2 закрылась. Каким образом я могу перенести данные по новой записи таблицыР на форму1, а если точнее то в запись внешнего ключа таблицыД? И могу ли вообще? Если можно, то растолкуйте поподробнее, не совсем представляю как вообще можно данные таблиц носить по формам Delphi.
0
 Аватар для arni
914 / 879 / 62
Регистрация: 06.01.2010
Сообщений: 2,367
Записей в блоге: 6
06.05.2014, 00:38
Цитата Сообщение от Натали@Shirley Посмотреть сообщение
сперва надо удалять запись родительской таблицы, а потом дочерней
Сдается мне, что у вас путаница понятий, что есть дочерняя таблица, а что родительская.
0
8 / 8 / 1
Регистрация: 28.11.2011
Сообщений: 84
06.05.2014, 11:28  [ТС]
arni, наверно. Сделала я не так как написала тут. Приношу извинения.

Добавлено через 9 часов 0 минут
Цитата Сообщение от Натали@Shirley Посмотреть сообщение
Добавлено через 15 минут
Вот еще вопрос созрел. Работаю я с заполнением данных таблицыД на форме1 ( к примеру). ТаблицаД является дочерней, заполнила в ней все кроме внешнего ключа. Перехожу на форму2, где начинаю создавать запись родительской таблицыР. Заполнила все, сохранила, форма2 закрылась. Каким образом я могу перенести данные по новой записи таблицыР на форму1, а если точнее то в запись внешнего ключа таблицыД? И могу ли вообще? Если можно, то растолкуйте поподробнее, не совсем представляю как вообще можно данные таблиц носить по формам Delphi.
Никто не знает?
0
8 / 8 / 1
Регистрация: 28.11.2011
Сообщений: 84
11.05.2014, 22:14  [ТС]
Хорошо, тогда другой вопрос: Можно ли выводить некоторые данные из бд в таблицу на форме делфи и выделяя одну строку этой таблицы, выводить другие данные запрошенные с помощью данных выделенной строки из другой таблицы бд? Например, есть таблица с Фамилией Именем Отчеством людей, нажимая на строку Иванов Иван Иванович, внизу на форме в edit выводиться номер телефона этого Иванова, а рядом в другой edit выводиться Фамилия его мамы (из таблицы МАМЫ) и в 3ий edit Фамилия папы ( из таблицы ПАПЫ). Где таблица с Ивановым будет дочерней, а с мамой и папой родительскими, т.е. таблица с Ивановым будет содержать первичные ключи мамы и папы в виде внешних ключей. Боже, я наверное не умею объяснять, чем больше пишу, тем больше убеждаюсь.

И заодно про FastReport 4.0: выводить в отчет данные взятые от и до определенных дат можно ли? В принципе там можно в запросе указать условие от и до какого значения поля "дата", но я не уверена что в FR можно с условиями выборку делать....
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.05.2014, 22:14
Помогаю со студенческими работами здесь

Запросы и их Field (Firebird)
procedure TForm5.SpeedButton3Click(Sender: TObject); var Id:integer; begin id:=IBQuery1.Fields.Fields.AsInteger; ...

Перенос столбцов из IBExpert в Delphi
в Датамодуль в коде есть столбцы, которые необходимо отобразить в главной форме в DBGid, но не они не отображаются. Хотя все модули...

Delphi не видит таблиц созданых IBexpert
Давно не писал на Delphi. Попросили меня дописать проэкт (громко сказано) - работа Delphi с СУБД Firebird. В других средах с данной СУБД...

Delphi - как протестировать базу данных, созданную в IBExpert, на VirttualBox
Создал БД с помощью IBExpert. Бросил её в другую ОС, которая находится в VirtualBox. Основная операционная система у меня это сервер, а в...

Firebird и Delphi
Нужно срочно научится писать и написать на делфи программу, использующую бд firebird. Подскажите где найти уроки по этой теме? по делфи...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru