powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Нетрадиционная задачка
3 сообщений из 3, страница 1 из 1
Нетрадиционная задачка
    #34269559
цукцук
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Такая нетривиальная как мне кажется задачка.

Есть sql server 2005 и sql запрос
например такой: Select a.Id,a.Name, b.Id,b.Item,c.Id from XXX as A, YYY as B, ZZZ as C

Требуется получить список полей вернувшихся в результате запроса.
В результате по каждому полю требуется иметь такую информацию:
- Имя таблицы, которому поле принадлежит,
- sql тип поля (например varchar)
- .NET тип поля (например System.Data.DbType.String)
- размер поля

Вижу два варианта решения:
- выполнять команду через ADO.NET и читать DataTable.Colums
- разобрать вручную запрос, получить список возвращаемых таблиц и полей, и считать данные о них, используя GetSchema.

В первом случае нет данных об имени таблицы и sqlтипе
а второй выглядит ненадежным и длинным.

Какая есть альтернатива?
...
Рейтинг: 0 / 0
Нетрадиционная задачка
    #34269692
Bigheadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для получения наиболее полной информации о схеме данных можно использовать SQL-SMO. Надежность - 100%. Трудоемкость - пожалуй, немного повыше.
...
Рейтинг: 0 / 0
Нетрадиционная задачка
    #34270621
Фотография goodbit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Построй аккуратно алгоритм построения запроса и используй таблицу INFORMATION_SCHEMA.Columns для получения тех данных
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Нетрадиционная задачка
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]