Здравствуйте, Аноним, Вы писали:
А>Привет!
А>Можна ли создать DataSet со SQL Scripta, а не ручками создавать таблици потом колонки в них, потом релейшины между таблицами и так далее?
Здравствуйте, Аноним, Вы писали:
А>Привет!
А>Можна ли создать DataSet со SQL Scripta, а не ручками создавать таблици потом колонки в них, потом релейшины между таблицами и так далее?
Если скрипт содержит несколько select'ов, то результат каждого из них (при использовании DataAdapter.Fill) будет сохранен в собственную таблицу, которые по умолчанию имеют имена Table, Table1, Table2, и т.д. Имена таблиц и колонок по умолчанию можно изменить, если настроить соответствующим образом свойство TableMappings. Релейшины, на сколько мне известно, автоматически получить из БД нельзя.
Еще стоит посмотреть на свойства адаптера MissingSchemaAction и MissingMappingAction.
Re[2]: ADO.NET: Создать DataSet со SQL скрипта?
От:
Аноним
Дата:
25.07.07 13:40
Оценка:
Здравствуйте, Овощ, Вы писали:
О>Здравствуйте, Аноним, Вы писали:
А>>Привет!
А>>Можна ли создать DataSet со SQL Scripta, а не ручками создавать таблици потом колонки в них, потом релейшины между таблицами и так далее?
О>Если скрипт содержит несколько select'ов, то результат каждого из них (при использовании DataAdapter.Fill) будет сохранен в собственную таблицу, которые по умолчанию имеют имена Table, Table1, Table2, и т.д. Имена таблиц и колонок по умолчанию можно изменить, если настроить соответствующим образом свойство TableMappings. Релейшины, на сколько мне известно, автоматически получить из БД нельзя. О>Еще стоит посмотреть на свойства адаптера MissingSchemaAction и MissingMappingAction.
Может не ясно обьяснил проблему:
У меня в sql скрипте структуры таблиц (через CREATE TABLE) с релейшинами и индексами, необходимо при первом запуске создать DateSet с этого скрипта, затем я заливаю нужные данные сам через AddRow в таблици и сохраняю DataSet в XML файл, при последующих запусках DataSet подымаю уже с созданного файла.
Так реально сделать?
Здравствуйте, Аноним, Вы писали:
А>Может не ясно обьяснил проблему: А>У меня в sql скрипте структуры таблиц (через CREATE TABLE) с релейшинами и индексами, необходимо при первом запуске создать DateSet с этого скрипта, затем я заливаю нужные данные сам через AddRow в таблици и сохраняю DataSet в XML файл, при последующих запусках DataSet подымаю уже с созданного файла. А>Так реально сделать?
Этого нельзя. Вот еслибы всесто SQL DDL у тебя была XML Schema тогда никаких проблем.
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, stump, Вы писали:
S>>Этого нельзя. Вот еслибы всесто SQL DDL у тебя была XML Schema тогда никаких проблем.
А>А как можно заполучить эту XML схему с SQLServer2000(там я задизайнил базу), что бы потом по ней создавать локальный датасет?
никак.
надо было дизайнить сразу датасет в студии — получилась бы xml схема
Здравствуйте, stump, Вы писали:
S>Здравствуйте, Аноним, Вы писали:
А>>Здравствуйте, stump, Вы писали:
S>>>Этого нельзя. Вот еслибы всесто SQL DDL у тебя была XML Schema тогда никаких проблем.
А>>А как можно заполучить эту XML схему с SQLServer2000(там я задизайнил базу), что бы потом по ней создавать локальный датасет?
S>никак. S>надо было дизайнить сразу датасет в студии — получилась бы xml схема
Добрый день.
Насколько я знаю, информацию о схеме базы можно получить через метод
DbConnection.GetSchema();
Так можно получить все таблицы и рэлейшены и т.п.
По этим данным нарисовать датасет, а потом зафилить.
Правда получится много кода и немного тормознуто, но все в Ваших руках.
Здравствуйте, D.Triton, Вы писали:
DT>Насколько я знаю, информацию о схеме базы можно получить через метод DT>DbConnection.GetSchema(); DT>Так можно получить все таблицы и рэлейшены и т.п. DT>По этим данным нарисовать датасет, а потом зафилить.
Какую-то информацию (связи или ограничения) через эту схему не вытянуть (поиск на сайте
пока не совсем работает и мне не найти сообщение с описанием проблемы).
Help will always be given at Hogwarts to those who ask for it.
Здравствуйте, D.Triton, Вы писали:
S>>надо было дизайнить сразу датасет в студии — получилась бы xml схема
DT>Добрый день. DT>Насколько я знаю, информацию о схеме базы можно получить через метод DT>DbConnection.GetSchema(); DT>Так можно получить все таблицы и рэлейшены и т.п. DT>По этим данным нарисовать датасет, а потом зафилить. DT>Правда получится много кода и немного тормознуто, но все в Ваших руках.
Ага. Ровно это и делает мастер создания типизированного датасета в студии
Здравствуйте, _FRED_, Вы писали:
_FR>Здравствуйте, D.Triton, Вы писали:
DT>>Насколько я знаю, информацию о схеме базы можно получить через метод DT>>DbConnection.GetSchema(); DT>>Так можно получить все таблицы и рэлейшены и т.п. DT>>По этим данным нарисовать датасет, а потом зафилить.
_FR>Какую-то информацию (связи или ограничения) через эту схему не вытянуть (поиск на сайте _FR>пока не совсем работает и мне не найти сообщение с описанием проблемы).
Посмотрите в сторону SQL Server Management Objects (SMO). Через него можно вытянуть все.
Здравствуйте, Slider_spb, Вы писали:
_FR>>Какую-то информацию (связи или ограничения) через эту схему не вытянуть (поиск на сайте _FR>>пока не совсем работает и мне не найти сообщение с описанием проблемы). S_>Посмотрите в сторону SQL Server Management Objects (SMO). Через него можно вытянуть все.
Это не очень выход: требует установки дополнительных (по сравнению со фреймворком) компонент на клиента.
Help will always be given at Hogwarts to those who ask for it.
Здравствуйте, Аноним, Вы писали:
А>Привет!
А>Можна ли создать DataSet со SQL Scripta, а не ручками создавать таблици потом колонки в них, потом релейшины между таблицами и так далее?
Запустить скрипт на отдельной новой базе, и задача сводится к уже решённой
Данное сообщение является художественным произведением и освещает вымышленные события в вымышленном мире. Все совпадения с реальностью являются случайными. Не является инвестиционной рекомендацией.
Здравствуйте, _FRED_, Вы писали:
_FR>Здравствуйте, Slider_spb, Вы писали:
_FR>>>Какую-то информацию (связи или ограничения) через эту схему не вытянуть (поиск на сайте _FR>>>пока не совсем работает и мне не найти сообщение с описанием проблемы). S_>>Посмотрите в сторону SQL Server Management Objects (SMO). Через него можно вытянуть все.
_FR>Это не очень выход: требует установки дополнительных (по сравнению со фреймворком) компонент на клиента.
Ну достаточно включить ссылку на эту dll-ку в сборку и добавить её в дистрибултив. Мне кажется не критично, dll-кой больше или меньше в проекте. Полностью SQL клиента устанавливать необязательно.
Здравствуйте, <Аноним>, Вы писали:
А>У меня в sql скрипте структуры таблиц (через CREATE TABLE) с релейшинами и индексами, необходимо при первом запуске создать DateSet с этого скрипта
У тебя два варианта:
1) Выполнить скрипт на временной БД и посмотреть, что получилось
2) Написать парсер SQL DDL
... << RSDN@Home 1.2.0 alpha rev. 693 on Windows Vista 6.0.6000.0>>
Здравствуйте, Slider_spb, Вы писали:
_FR>>Это не очень выход: требует установки дополнительных (по сравнению со фреймворком) компонент на клиента. S_>Ну достаточно включить ссылку на эту dll-ку в сборку и добавить её в дистрибултив. Мне кажется не критично, dll-кой больше или меньше в проекте. Полностью SQL клиента устанавливать необязательно.
Ввообщем нарисовал на C# модель локальной базы, то есть создал в коде таблици колонки связи между таблицами — благо база была не слишком большая.
Думаю реально через SQL создавать локальный DataSet трудно реализуемая задача, так как нужен парсер SQL, а это почти что локальный сервер должен быть или иметь доступ к SQLServer который распарсит, но в моем случае нету доступа к SQLServer-у.
Аноним 620 wrote:
> _FR>>Это не очень выход: требует установки дополнительных (по сравнению > со фреймворком) компонент на клиента. > S_>Ну достаточно включить ссылку на эту dll-ку в сборку и добавить её в > дистрибултив. Мне кажется не критично, dll-кой больше или меньше в > проекте. Полностью SQL клиента устанавливать необязательно. > > Ввообщем нарисовал на C# модель локальной базы, то есть создал в коде > таблици колонки связи между таблицами — благо база была не слишком большая. > > Думаю реально через SQL создавать *локальный* DataSet трудно реализуемая > задача, так как нужен парсер SQL, а это почти что локальный сервер > должен быть или иметь доступ к SQLServer который распарсит, но в моем > случае нету доступа к SQLServer-у.
Используй компактедишен. Это 1 длл весом меньше мегабайта.