Как запустить файл сценария базы данных из Delphi?

Я хочу сделать следующее. 1) Создайте базу данных. 2) Запустить сценарий при создании таблиц, хранимых процедур и т. Д. (Этот сценарий создается с помощью параметра SMS "генерировать сценарии")

Я нашел следующий код: http://www.delphipages.com/forum /showthread.php?t=181685 и изменил его на это:

попробуйте

 ADOQuery.ConnectionString: = 'Provider = SQLOLEDB.1; Password =' ​​+

edtPassword.Text + '; Сохранять информацию о безопасности = True; ID пользователя =' + edtUser.Text + '; Исходный каталог = master; Data Source =' + edtServerName.Text;

 ADOQuery.SQL.Clear;
ADOQuery.SQL.Text: = 'создать базу данных' + edtWebDBName.Text;
ADOQuery.ExecSQL; // должен проверить наличие базы данных
ADOWeb.Connected: = false;
ADOWeb.ConnectionString: = 'Провайдер = SQLOLEDB.1; Пароль =' +

edtPassword.Text + '; Сохранять информацию о безопасности = True; ID пользователя =' + edtUser.Text + '; Исходный каталог =' + edtWebDBName.Text + '; Источник данных =' + edtServerName.Text; ADOWeb.Connected: = true;

 ADOQuery.Connection: = ADOWeb;
ADOQuery.SQL.Clear;
ADOQuery.SQL.LoadFromFile (edtScriptFileName.Text);
ADOQuery.ExecSQL; Кроме

Это работает до момента запуска файла сценария. Затем генерируется исключение: Неверный синтаксис рядом с "GO". Если я запустил сценарий в SMS во вновь созданной БД, все в порядке. Связана ли эта проблема с выполнением нескольких команд SQL одновременно (сценарий представляет собой длинный список команд / операторов GO? Как это обойти?

А также в качестве бонуса, любые мысли по быстрой проверке, чтобы увидеть если новая база данных действительно существует до отправки ей сценария? (Или это не обязательно, поскольку в случае сбоя создания будет сгенерировано исключение?)

7
задан Cœur 21 July 2017 в 18:36
поделиться