|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
24.12.2007, 16:11 | #1 |
Новичок
Джуниор
Регистрация: 09.08.2007
Сообщений: 1
|
Многотабличные запросы! (модификация данных). MSSQL +Delphi
Здраствуйте, подскажите пожалуйста, как модифицировать данные, полученные с помощью многотабличного запроса , если структура запроса (и самой БД) неизвестна ?
Сейчас, алгоритм работы примерно такой: 1) Получаю список всех пользовательских обьектов БД 2) пользователь выбирает нужный обьект из списка 3) в зависимости от типа (представление, таблица, хр. п) выполняю следующее : а) Если -таблица, просто открываю ее б) Если-представление без параметров, открываю как таблицу, если с параметрами, то прошу пользователя заполнить эти параметры в)примерно также с х.п. 4) Далее пользватель выбирает,что делать с полученной "recordSet" (добавить,изменить, удалить, поиск по , фильтр) 5) Если пользователь пытается работать с данными полученными через представление (view),построенное на нескольких таблицах, начинаются проблемы. Так как заранее не известно сколько таблиц , какие поля и какая схема данных используется. Например в книге Е.Мамаева "MSSQL SERVER 2000" написано так :"если нужно изменить данные во всех столбцах представления, построенного на основании четырех таблиц, то такую операцию нужно будет разбить на четыре этапа ". Я пытаюсь сделать так как написано, но все время натыкаюсь на разные грабли. Кол-во таблиц и полей в запросе я определяю так : IF EXISTS(SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = '##TempTable') DROP TABLE ##TempTable CREATE TABLE ##TempTable ( [name] varchar(128), type varchar(128), updated varchar(128), selected varchar(128), [column] varchar(128) ) insert ##tempTable execute SP_depends '[Имя обьекта]' select [name],[column] from ##TempTable order by [name] drop table ##TempTable Но как с полученными данными работать дальше я не знаю. Заранее спасибо! P.S. если не понятно о чем я, спрашивайте попробую обьяснить получше. |
25.12.2007, 16:21 | #2 |
Форумчанин
Регистрация: 24.10.2007
Сообщений: 254
|
Используя SP_depends '[Имя объекта]' ты узнаешь какие таблицы завязаны на выборке(view). В данном случае нужно на клиенте в момент так называемой имитации DML процедур "ручками" вносить изменения в те или иные таблички. Ну и гемарой же это!!!
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
SQL - запросы в Delphi | zetrix | БД в Delphi | 41 | 08.06.2010 14:07 |
Запросы SQL в Delphi | antoni | БД в Delphi | 13 | 02.09.2008 00:53 |
MsSql-Запросы | Diamand | SQL, базы данных | 4 | 18.06.2008 06:30 |