• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Удаление записей из связанных таблиц

  • Автор темы Kleopatra
  • Дата начала
Статус
Закрыто для дальнейших ответов.
K

Kleopatra

Здравствуйте, я тут у вас новенькая, надеюсь уделите мне пару минут вашего драгоценного внимания???
Я начинающий "программист", у меня проблема, есть несколько связанных таблиц, используются на разных формах, как удалить запись? просто команда delete подвешивает прогу.
 
B

Barmutik

А нужно произвести каскадное удаление?

Сколько записей в таблице? Какой сервер баз данных? С помощью чего подключаетесь и работаете с базой?
 
K

Kleopatra

Да нужно каскадное удаление, записей в таблице до 1000, использую объект Table таблица Paradox
 
B

Barmutik

Хмм.. ну тогда просто настроить Constraints при удаление из master таблицы из detail удалит автоматически.

Если это вызывает проблемы .. то удалять используя SQL всё ручками...

А на чём конкретно происходит подвисание программы? Просто на таком объёме удаление в пределе должно занимать полсекунды даже для очистки всей таблицы...
 
K

Kleopatra

При удалении выдает сообщение "Master has detail records. Cannot delete or modify" и виснит


Извените за тупость " настроить Constraints" это как и где?
 
B

Barmutik

CONSTRAINTы создаются при создании или изменение таблицы. Они позволяют отслеживать целостность структуры базы данных на уровне сервера СУБД. Т.е на Вашем примере.. при удаление записи из главной таблицы .. все записи из подчинённых таблиц удалятся автоматически. Это очень удобно... но есть одно но (лично для меня)... бывает что не отдающий себе отчёта в том что он делает пользователь может одним Делитом стереть пол базы данных :ph34r:

Для Вашего случая я бы посоветовал бы руками удалить сначала записи из подчинённых таблиц а уж потом из главной ... всё будет просто... B)

На всякий случай привожу синтаксис создания таблицы, там же указывается синnаксис создания Constraints..

CREATE TABLE

Syntax
CREATE TABLE
[ database_name.[ owner ] . | owner. ] table_name
( { < column_definition >
| column_name AS computed_column_expression
| < table_constraint > ::= [ CONSTRAINT constraint_name ] }

| [ { PRIMARY KEY | UNIQUE } [ ,...n ]
)

[ ON { filegroup | DEFAULT } ]
[ TEXTIMAGE_ON { filegroup | DEFAULT } ]

< column_definition > ::= { column_name data_type }
[ COLLATE < collation_name > ]
[ [ DEFAULT constant_expression ]
| [ IDENTITY [ ( seed , increment ) [ NOT FOR REPLICATION ] ] ]
]
[ ROWGUIDCOL]
[ < column_constraint > ] [ ...n ]

< column_constraint > ::= [ CONSTRAINT constraint_name ]
{ [ NULL | NOT NULL ]
| [ { PRIMARY KEY | UNIQUE }
[ CLUSTERED | NONCLUSTERED ]
[ WITH FILLFACTOR = fillfactor ]
[ON {filegroup | DEFAULT} ] ]
]
| [ [ FOREIGN KEY ]
REFERENCES ref_table [ ( ref_column ) ]
[ ON DELETE { CASCADE | NO ACTION } ]
[ ON UPDATE { CASCADE | NO ACTION } ]
[ NOT FOR REPLICATION ]
]
| CHECK [ NOT FOR REPLICATION ]
( logical_expression )
}

< table_constraint > ::= [ CONSTRAINT constraint_name ]
{ [ { PRIMARY KEY | UNIQUE }
[ CLUSTERED | NONCLUSTERED ]
{ ( column [ ASC | DESC ] [ ,...n ] ) }
[ WITH FILLFACTOR = fillfactor ]
[ ON { filegroup | DEFAULT } ]
]
| FOREIGN KEY
[ ( column [ ,...n ] ) ]
REFERENCES ref_table [ ( ref_column [ ,...n ] ) ]
[ ON DELETE { CASCADE | NO ACTION } ]
[ ON UPDATE { CASCADE | NO ACTION } ]
[ NOT FOR REPLICATION ]
| CHECK [ NOT FOR REPLICATION ]
( search_conditions )
}
 
K

Kleopatra

Большое спасибо!
А еще вопрос можно?

Нужно создать отчет и вывести на него данные из связанных таблиц.
Делаю следующее:
1. Разместила QuickRep
2. Поместила 2 объекта Table и 1 DataSourse, таблицы связала между собой. Связала QuickRep с главной таблицей
3. На QuickRep разместила 2 QRBand: один rbDetail второй rbSubDetail и соответственно на каждый объекты для отображения данных

Проблема: из первой таблицы данные отображаются из второй нет.
 
B

Barmutik

Так сходу не видя что бы сделали сложновато сказать.. по идее должно всё работать ..

ДЛя примера рекомендую Вам обратится к примерам по созданию отчётов в QuickReport .. там такие моменты достаточно хорошо освещены...
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!