![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Программное удаление в Firebird [D7, XP]
Михалыч © (2015-12-25 12:53:00)Здравствуйте мастера! Помогите пожалуйста,а то нигде не могу найти живой пример нужного мне кода. Использую Firebird 2.5. Надо добавить колонку в таблицу и удалить хранимку,тригер и генератор в существующей таблице,чтобы потом с помощью скрипта создать новые. Делаю так:
try
with DataModule1.IBQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('ALTER TABLE MyTable');
SQL.Add('ADD NewField VARCHAR(20)');
SQL.Add('DROP PROCEDURE PROCMyTable');
SQL.Add('DROP TRIGGER MyTable_BI');
SQL.Add('DROP SEQUENCE GEN_MyTable_ID');
if not Transaction.Active then Transaction.StartTransaction;
ExecSQL;
Transaction.Commit;
Transaction.Active := false;
Close;
end;
except
on E: Exception do
begin
if DataModule1.IBQuery1.Active then DataModule1.IBQuery1.Transaction.Rollback;
Application.MessageBox(PChar(E.Message), 'Ошибка', MB_ICONERROR);
end;
end;
Получаю ошибку выполнения в программе:"Tokеn unknown DROP!"
Что делаю не так?
Кщд (2015-12-28 11:38:00) [1]>macrodens © (28.12.15 09:43) [5]
одно дело разово ступить, прочитать документацию и осознать
совсем другое - воинственно упорствовать в своем заблуждении
надеюсь, не затруднит привести пример рабочего кода, в котором с помощью TIBQuery выполняется скрипт?
macrodens (2015-12-28 09:43:00) [2]
Кщд © (28.12.15 07:14) [4]
вероятно, документацию надо читать прежде, чем давать странные советы
Ну так а что же вы ее не читаете?
То что вы предложили в [2], вполне уместно, однако, у ТС в SQL коде есть и другая ошибка - ";" после каждого оператора поставить нужно.
Кщд (2015-12-28 07:14:00) [3]>macrodens © (27.12.15 13:40) [3]
вероятно, документацию надо читать прежде, чем давать странные советы
macrodens (2015-12-27 13:40:00) [4]Точно не уверен (нет сейчас огнептица под рукой, только мускул), но вероятно, что точку с запятой поставить необходимо после каждого действия
Михалыч (2015-12-25 13:22:00) [5]А без написания и выполнения скрипта напрямую из программы нельзя?
Или надо сменить Query на IBScript в коде?
Кщд (2015-12-25 13:15:00) [6]Михалыч (25.12.15 12:53)
доку надо чтить
TIBScript