TZQuery. Создать несколько таблиц за раз.

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
btsoft
незнакомец
Сообщения: 7
Зарегистрирован: 04.04.2014 06:24:48

TZQuery. Создать несколько таблиц за раз.

Сообщение btsoft »

Здравствуйте. Помогите, пожалуйста, прояснить такой вопрос.
Lazarus v 1.01.14, Zeos Access 7.1., Firebird 2.5
Пытаюсь с помощью ZQuery создать таблицы в пустой базе данных. Гружу строки запроса из файла. Дальше делаю

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

StrList1:= TStringList.Create;
StrList1.LoadFromFile(filePath_glob + 'SQL.txt');
q1.SQL.AddStrings(StrList1);
q1.ExecSQL;


Если в файле SQL.txt создание только одной таблицы, все замечательно создается. Если 2 и более таблиц - вылетает ошибка SQL Error: Dynamic SQL Error SQL Error Code = -104 Token Unknown и т.д.

Вопрос: таким образом можно создавать только по одной таблице? А если надо сразу все и вся - не разбивать же один файл на сотню маленьких файлов!?
Аватара пользователя
alexs
долгожитель
Сообщения: 4069
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

А ZSQLProcessor1 не поможет?
Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

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

Var
  zp: TZSQLProcessor;

Begin
  zp.LoadFromFile(filePath_glob + 'SQL.txt');
  zp.Execute;
End;
btsoft
незнакомец
Сообщения: 7
Зарегистрирован: 04.04.2014 06:24:48

Сообщение btsoft »

Спасибо большое за ответы! ZSQLProcessor действительно справляется с этим легко и непринужденно. Не знал раньше об этой штуке.
Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

btsoft
Через него можно любые скрипты на сервер отправлять для выполнения. Очень удобно, когда команд для выполнения несколько и не нужно получать обратно набор данных. Что-то типа хранимой процедуры на сервере.
MaratIsk
постоялец
Сообщения: 126
Зарегистрирован: 20.08.2009 18:15:20

Сообщение MaratIsk »

а ты не додумался что получается в
q1.SQL.AddStrings(StrList1);
q1.ExecSQL;

ты просто лепишь один SQL к предыдущему
ты не будешь программистом
Ответить