Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Доступ к БД MS SQL Server через метаданные  (Прочитано 10214 раз)
0 Пользователей и 1 Гость смотрят эту тему.
AlexP
Гость
« : 24-12-2007 09:32 » new

Кто-нибудь знает, как по строковому имени (или системному номеру) колонки получить значение поля в MS SQL 2005 ?
Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 24-12-2007 09:35 » 

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

Вопрос твой не ясен. Не скупись на слова.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #2 : 24-12-2007 10:11 » 

типа такого
select * from INFORMATION_SCHEMA.COLUMNS
         where ...
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #3 : 24-12-2007 20:35 » 

AlexP, самое простое - динамический SQL, и метаданные не нужны. Улыбаюсь
Код: (Text)
exec('SELECT ' + @columnName + ' FROM MyTable WHERE id=...')
Только о безопасности такого кода не надо забывать.

Другое дело - проверка наличия колонки.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
AlexP
Гость
« Ответ #4 : 25-12-2007 07:43 » 

Видимо, я и в самом деле не сумел правильно сформулировать вопрос.
Необходимо внутри функции получить значение поля, о котором известны его системный номер (из sys.columns) и ID записи. Динамический SQL не прокатывает, поскольку в теле функции нельзя использовать EXEC. Должна быть какая-то системная функция для этого! Здесь была моя ладья...
Записан
little
Помогающий

de
Offline Offline
Пол: Мужской

« Ответ #5 : 26-12-2007 08:24 » 

ну... как вариант, написать свою юзер-функцию, которая будет возвращать именно то, что тебе нужно. К ней и будешь обращаться.
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines