powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / выполнить alter table в IbeBlock
3 сообщений из 3, страница 1 из 1
выполнить alter table в IbeBlock
    #39158325
aidynchik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Люди добрые подскажите как выполнить Alter table, а именно мне надо дропать констрейнты, в IbeBlock?
Я написал вот так, но просто потому что я не знаю как эту команду впихнуть в цикл, пришлось извращаться через ibec_ExecSQLScript.
Или по-другому нельзя?

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
execute ibeblock
as
begin
  cbb = 'execute ibeblock (LogMessage variant)
         as
         begin
           ibec_progress(LogMessage);
         end';
  SourceDB = ibec_CreateConnection(__ctInterBase, 
                                   'DBName="C:\DB.GDB";
                                   ClientLib=gds32.dll;
                                   User=SYSDBA; Password=masterkey; Names=WIN1251; SqlDialect=3');

  ibec_UseConnection(SourceDB);

  for select 'ALTER TABLE ' ||TRIM (rdb$relation_name) || ' DROP CONSTRAINT ' || TRIM(rdb$constraint_name) || ';'
       from rdb$relation_constraints r
      where rdb$constraint_type = 'FOREIGN KEY'
      into :str
  do begin
    str_ALL = COALESCE(STR_ALL, '') || STR;
  end

  try
    ibec_ExecSQLScript(SourceDB, str_ALL, 'ServerVersion=FB25; StopOnError=FALSE', cbb);
  finally
    ibec_CloseConnection(SourceDB);
  end
end;



Модератор: Тема перенесена из форума "Firebird, InterBase".
...
Рейтинг: 0 / 0
выполнить alter table в IbeBlock
    #39159084
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
2.
stmt = 'ALTER TABLE bla-bla-bla';
execute statement stmt;



Один нюанс: коммитить его внутри for select нельзя, иначе и датасет for select закроется. Так что сначала желательно подготовить все операторы в массиве, а потом пробежаться по нему и выполнить каждый с коммитом.
...
Рейтинг: 0 / 0
выполнить alter table в IbeBlock
    #39159170
aidynchik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpert,
спасибо большое
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / выполнить alter table в IbeBlock
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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