Страница 1 из 1

Как создать базу данных MS SQL SERVER

Добавлено: 13 дек 2005, 10:39
Viktor Zull
Мне нужно создать базу данных MS SQL SERVER программно из Delphi. Подскажите как можно это сделать.

Добавлено: 13 дек 2005, 11:09
LAngel

Код: Выделить всё

with TADOQuery.Create(nil) do
try
  ConnectionString := 'DRIVER=SQL Server;SERVER=_server_';
  SQL.text := 'create database _database_';
  ExecSQL;
finally
  Free;
end;

Добавлено: 13 дек 2005, 11:16
Naeel Maqsudov
Ниразу не работал с MSSQL Server-ом, но вообще-то, во всех SQL-серверах с которыми имел дело это было так:
Подключаешься под пользователем с соответсвующими правами и посылаешь DDL-запрос:

CREATE DATABASE "name" <параметры разные>;

Парметры у каждого сервера свои.

Принцип всегда один: раз работа ведется с SQL-сервером, то ему надо посылать SQL-запросы.

Добавлено: 13 дек 2005, 12:06
Viktor Zull
Вот так?

ConnectionString := 'Provider=SQLOLEDB.1;' +
'Integrated Security=SSPI;' +
'Persist Security Info=False;' +
'Initial Catalog=master'
ADOConnection1.ConnectionString := ConnectionString;
ADOConnection1.LoginPrompt := False;
ADOConnection1.Connected := True;
CommandText := 'CREATE DATABASE test ON ' +
'( NAME = test_dat, ' +
'FILENAME = ''c:\base.mdf'', '+
'SIZE = 4, ' +
'MAXSIZE = 10, ' +
'FILEGROWTH = 1 )';

ADOCommand1.CommandText := CommandText;
ADOCommand1.Connection := Form1.ADOConnection1;
ADOCommand1.Execute;

Добавлено: 13 дек 2005, 14:07
Naeel Maqsudov
Ну если создается, значит именно так.
Если не создается, то какую-то мелочь надо подправить :)

Добавлено: 15 дек 2005, 23:55
Viktor Zull
С создание Базы понятно а как можно из Delphi сделать Attach DataBase

Добавлено: 16 дек 2005, 03:31
AiK
Так же. Путём вызова системной хранимой процедуры sp_attach_db

Добавлено: 16 дек 2005, 09:20
Viktor Zull
Насколько также? Все оставить тоже самое но вместо CREATE DataBAse поставить sp_attach_db. Надо еще написать путь к файлу mdf который нужно приаттачить.

Добавлено: 16 дек 2005, 17:14
AiK
С точки зрения Delphi абсолютно так же. А вопросы по SQL обсуждаются в другом разделе форума :)

Добавлено: 19 дек 2005, 02:31
Viktor Zull
Нет, не проходит. Надо как-то по другому писать.