Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2008.06.01;
Скачать: [xml.tar.bz2];

Вниз

Многотабличные запросы (модификация данных)   Найти похожие ветки 

 
Максим   (2007-12-24 14:59) [0]

Здраствуйте, подскажите пожалуйста, как модифицировать данные, полученные с помощью многотабличного запроса , если структура запроса (и самой БД) неизвестна ?
Сейчас, алгоритм работы примерно такой:

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. если не понятно о чем я, спрашивайте попробую обьяснить получше.  ICQ:  333-042-156


 
Ega23 ©   (2007-12-25 13:57) [1]

Зачем два диеза ставишь?



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2008.06.01;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.047 c
2-1210575397
Mishenka
2008-05-12 10:56
2008.06.01
Запуск процедуры в определённое время


15-1208830166
Slider007
2008-04-22 06:09
2008.06.01
С днем рождения ! 22 апреля 2008 вторник


4-1189725560
Andrey_rus
2007-09-14 03:19
2008.06.01
Событие перехода питания на аккумулятор


2-1210266876
Riply
2008-05-08 21:14
2008.06.01
Снова выравнивание памяти :)


2-1210320494
assassin8899
2008-05-09 12:08
2008.06.01
QReport





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский