Гость
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / выполнить alter table в IbeBlock / 3 сообщений из 3, страница 1 из 1
29.01.2016, 11:22
    #39158325
aidynchik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выполнить alter table в IbeBlock
Люди добрые подскажите как выполнить 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
30.01.2016, 05:21
    #39159084
IBExpert
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выполнить alter table в IbeBlock
Код: plsql
1.
2.
stmt = 'ALTER TABLE bla-bla-bla';
execute statement stmt;



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


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