Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Программное создание базы на SQL Server- е. Как лучше? / 11 сообщений из 11, страница 1 из 1
08.01.2005, 23:50
    #32856600
# Darth Vader #
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программное создание базы на SQL Server- е. Как лучше?
Ms SQL Server 2K & ADO.NET

Знаю, что сейчас можете отправить к EM и его генерации объектов базы. Но мне хотелось бы услышать мнение тех , кто на этом , как говорится сьел собаку.

Мне надо чтобы клиенткое приложение после коннекта к серваку создало на нем базу с таблицами ,связями между ними , парочкой пользователей и кучкой хранимых процедур и представлений. Ну то есть чтобы по клику в программе получили готовую базу созданную программно. Можно конечно написать хранимки на создание объектов базы , но их же надо помещать все равно в какую то базу. Есть другой метод, уже готовую базу сохранить в отдельной папке , а потом приатачить к серваку. Но меня все таки больше интересует программное создание новой базы со всем джентельмнинским набором.

А как поступаете когда необходимо развернуть базу ?
...
Рейтинг: 0 / 0
09.01.2005, 01:04
    #32856618
Bigheadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программное создание базы на SQL Server- е. Как лучше?
Вижу два очевидных пути:
1) Создать заранее скрипт, который все это делает. (Либо создать его в рантайм.) Программно вызвать утилиту isql (либо osql) с соотв. параметрами для вызова скрипта.
Плюс. Можно поменять сам скрипт без пересборки проекта.
Минус. На целевом компьютере должны быть установлены Client Tools от MSSQL2000. Намного более сложный по сравнению со вторым способом контроль ошибок.
2) SQL-DMO. Подключается через COM Interop. Вся документация есть в Books Online и MSDN. Весь код для создания объектов пишется программно.
Плюс. Рекомендации лучших собаководов (читай - из Редмонда, и не только). Полный контроль над тем, что и как вы делаете. Полный контроль возможных ошибок.
Минус. Надо таскать за собой dll SQL-DMO, если на целевом компьютере не установлены Client Tools от MSSQL2000.

В обоих случаях знания ADO.NET вам не потребуются.
И хотя второй способ идеологически более верный, по указанным вами исходным данным лично я не отдал бы предпочтения ни одному из способов.
...
Рейтинг: 0 / 0
09.01.2005, 02:34
    #32856639
# Darth Vader #
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программное создание базы на SQL Server- е. Как лучше?
BigheadmanВижу два очевидных пути:
1) Создать заранее скрипт, который все это делает. (Либо создать его в рантайм.) Программно вызвать утилиту isql (либо osql) с соотв. параметрами для вызова скрипта.
Плюс. Можно поменять сам скрипт без пересборки проекта.
Минус. На целевом компьютере должны быть установлены Client Tools от MSSQL2000. Намного более сложный по сравнению со вторым способом контроль ошибок.
2) SQL-DMO. Подключается через COM Interop. Вся документация есть в Books Online и MSDN. Весь код для создания объектов пишется программно.
Плюс. Рекомендации лучших собаководов (читай - из Редмонда, и не только). Полный контроль над тем, что и как вы делаете. Полный контроль возможных ошибок.
Минус. Надо таскать за собой dll SQL-DMO, если на целевом компьютере не установлены Client Tools от MSSQL2000.

В обоих случаях знания ADO.NET вам не потребуются.
И хотя второй способ идеологически более верный, по указанным вами исходным данным лично я не отдал бы предпочтения ни одному из способов.

Спасибо за замечания. Посмотрим по этому вопросу.

А разве нет пути через обычные команды sqlcommand , ну типа залимонить Cmd.Text="Create Table Bla Bla Bla" ???

Cmd.ExecuteNonQuery
...
Рейтинг: 0 / 0
09.01.2005, 04:28
    #32856648
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программное создание базы на SQL Server- е. Как лучше?
решал подобную задачу несколько лет тому назад ...

система находилась в постоянной разработке - база данных (таблицы, ключи, индексы, триггеры, ХП и пр.) постоянно изменялись и на "полигоне" заказчика приходилось постоянно переустанавливать ПО и БД

создал 2 (два) приложения:

первое приложение - через SQL-DMO получало необходимые скрипты для создания БД из разработческой БД (сами данные - таблицы справочников - переносились не текстом, а в БД Access).

второе приложение - по полученным скриптам посредством обычного ADO создавало (модифицировало) БД на сервере заказчика и заливало в него (при необходимости) данные справочников.

PS
справочники были достаточно емкими (это система классификации адресов [КЛАДР] и общероссийские, например, ОКПУ ~ 45000 записей, ОКАТО ~ 215000 записей и т.д.) низкую скорость загрузки справочников удалось поднять на порядок введением транзакций.
...
Рейтинг: 0 / 0
09.01.2005, 04:52
    #32856650
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программное создание базы на SQL Server- е. Как лучше?
+
по пункту 1, предложенному Bigheadman
использование isql необязательно. нужно "нарезать" полученный скрипт от GO до GO и выполнять его этими кусками, например, через ExecuteNonQuery.

по поводу диагностики - контроль ошибок не менее полный, чем по пункту 2.
...
Рейтинг: 0 / 0
09.01.2005, 10:23
    #32856678
www.fun4me.narod.ru
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программное создание базы на SQL Server- е. Как лучше?
А CREATE DATABASE + RESTORE DATABASE не подходит?
...
Рейтинг: 0 / 0
09.01.2005, 10:35
    #32856681
Sa
Sa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программное создание базы на SQL Server- е. Как лучше?
Присоединяюсь к www.fun4me.narod.ru + LOGINS + JOBS
...
Рейтинг: 0 / 0
09.01.2005, 11:45
    #32856708
Bigheadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программное создание базы на SQL Server- е. Как лучше?
Да, можно и через SqlCommand. Что-то на ночь глядя не сообразил. :-)
Можно и через RESTORE DATABASE, но это по бизнес-логике может не всегда подходить.
В общем решать надо в конкретных условиях. А варианты решения - все здесь.
...
Рейтинг: 0 / 0
09.01.2005, 14:58
    #32856784
Worobjoff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программное создание базы на SQL Server- е. Как лучше?
Задачка попроще чем у кузя - все кроме создания самой БД и User-ов.
Крутится год. Все изменения в структуре БД "зашиты" в стартующую процедуру приложения.
Для обновления программы рассылается по почте только ее exe-файл очередной версии.
Скрипты берутся для каждого объекта БД отдельно.

Есть еще два приложения - для создания скрипта (в Exel) и его исполнения - когда надо вместе со структурой нести еще и данные.
Запускали вторую программу обычные пользователи, инструктируемые по телефону.

Со всем этим справляется "старенький" ADO25 (объект Command).
...
Рейтинг: 0 / 0
09.01.2005, 15:09
    #32856794
# Darth Vader #
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программное создание базы на SQL Server- е. Как лучше?
Узнал много полезного, спасибо!
...
Рейтинг: 0 / 0
10.01.2005, 12:54
    #32857394
Alexey Kudinov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программное создание базы на SQL Server- е. Как лучше?
Eternal
Мне надо чтобы клиенткое приложение после коннекта к серваку создало на нем базу с таблицами ,связями между ними , парочкой пользователей и кучкой хранимых процедур и представлений. Мне кажется лучше, если этим будет заниматься программа-инсталлятор, а не клиентское приложение
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Программное создание базы на SQL Server- е. Как лучше? / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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