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

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

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

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

В обоих случаях знания ADO.NET вам не потребуются.
И хотя второй способ идеологически более верный, по указанным вами исходным данным лично я не отдал бы предпочтения ни одному из способов.
...
Рейтинг: 0 / 0
Программное создание базы на SQL Server- е. Как лучше?
    #32856639
Фотография # Darth Vader #
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Программное создание базы на SQL Server- е. Как лучше?
    #32856648
кузя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
решал подобную задачу несколько лет тому назад ...

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

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

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

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

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

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

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

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


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