Гость
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Text to insert / 7 сообщений из 7, страница 1 из 1
24.07.2018, 12:08
    #39678172
Exteris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Text to insert
Есть такой удобный сабж, когда перетаскиваешь какой-нибудь объект(таблицу) в sql-редактор, то эксперт предлагает варианты вставки этого объекта.
А можно как-то задать свой вариант?
...
Рейтинг: 0 / 0
24.07.2018, 13:58
    #39678279
IBExpert
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Text to insert
ExterisЕсть такой удобный сабж, когда перетаскиваешь какой-нибудь объект(таблицу) в sql-редактор, то эксперт предлагает варианты вставки этого объекта.
А можно как-то задать свой вариант?

Можно. Там есть блок для этого.
...
Рейтинг: 0 / 0
24.07.2018, 14:21
    #39678304
Exteris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Text to insert
IBExpert,
Спасибо, увидел. А встроенные вставки тоже блоком сделаны? Можно увидеть пример создания "insert into" или "update"?
...
Рейтинг: 0 / 0
24.07.2018, 14:40
    #39678322
IBExpert
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Text to insert
ExterisСпасибо, увидел. А встроенные вставки тоже блоком сделаны? Можно увидеть пример создания "insert into" или "update"?

Нет, не блоком. В коде эксперта зашиты.
А в чем проблема с созданием "insert into"? Запросом к базе вытаскиваешь поля таблицы (если, например, таблицу перетаскиваешь) и обрабатываешь. Пример есть у тебя на закладе "Блок" или там пусто?
...
Рейтинг: 0 / 0
24.07.2018, 14:49
    #39678327
Exteris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Text to insert
IBExpertПример есть у тебя на закладе "Блок" или там пусто?
Вот том то и дело, что нет там ничего.
...
Рейтинг: 0 / 0
24.07.2018, 14:57
    #39678333
IBExpert
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Text to insert
ExterisВот том то и дело, что нет там ничего.

Странно... Вот держи мой:
Код: 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.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
-- Блок добавляет дополнительные, пользовательские варианты статементов
-- к предопределенным в Эксперте

execute ibeblock (
  StatementID variant,
  SelectedNames variant,
  SelectedNamesFmt variant,
  SelectedTypes variant,
  ParentName variant = '',
  ParentNameFmt variant = '',
  ParentType variant,
--------------------------------
  ObjectAlias variant = '',
  VarPrefix variant = '',
  InsertCRLF boolean = FALSE)
RETURNS (
  StatementCaptions variant,
  StatementText variant = '',
  DoNotFormat boolean = FALSE comment 'If TRUE, no additional formatting will be performed')
as
begin
  -- Uncomment following line to avoid additional formatting of statement text
  DoNotFormat = TRUE;

  CRLF = ibec_CRLF();

  if (StatementID is null) then
  begin
    if (SelectedTypes[0] = __dboDomain) then
    begin
      StatementCaptions[101]  = 'Drop domain(s)';
      StatementCaptions[102]  = 'Set description (direct UPDATE)';
      StatementCaptions[103]  = 'Set description (COMMENT ON)';
    end;
    else if (SelectedTypes[0] = __dboTable) then
    begin
      StatementCaptions[201]  = 'Block Example AVX';
      StatementCaptions[202]  = 'Block Example AVX 2';
      StatementCaptions[203] = 'Autoincrement trigger';
      StatementCaptions[204] = 'Execute statement (insert or update)';
    end;
    else if (SelectedTypes[0] = __dboProcedure) then
      StatementCaptions[155] = 'Just a test statement (another test)';
    suspend;
    exit;
  end

  if (StatementID = 204) then
  begin
    sName = SelectedNames[0];
    sFields = '';
    sValues = '';
    for select rf.rdb$field_name
        from rdb$relation_fields rf
        left join rdb$fields f on rf.rdb$field_source = f.rdb$field_name
        where (rf.rdb$relation_name = :sName) and (f.rdb$computed_blr is null)
        order by rf.rdb$field_position
        into :FldName
    do
    begin
      if (sFields <> '') then
      begin
        sFields .= ', ';
        sValues .= ', ';
      end
      sFields .= ibec_FormatIdent(ibec_trim(:FldName));
      sValues .= ':' + ibec_FormatIdent('V_' + ibec_trim(:FldName));
    end
    StatementText = 'update or insert into ' + SelectedNamesFmt[0] + '(' + sFields + ') values (' + sValues + ')';
    StatementText = 'execute statement (' + ibec_QuotedStr(StatementText, '''') + ')';
    suspend;
    exit;
  end

  if ((StatementID >= 100) and (StatementID < 200)) then
  begin
    BlockFile = ibec_GetRunDir() + 'Blocks\DefaultBlocks\DragDropBlocks\DDDomains.ibeblock';
    if (ibec_FileExists(BlockFile)) then
    begin
      DomainsBlock = ibec_LoadFromFile(BlockFile);
      try
        execute ibeblock DomainsBlock(StatementID,
                                      SelectedNames,
                                      SelectedNamesFmt,
                                      SelectedTypes)
                returning_values :StatementText;
        suspend;
        exit;
      except
      end;
    end;
    else
    begin
      StatementText = 'Error: Cannot load IBEBlock from ' + CRLF + BlockFile + CRLF + 'Specified file does not exist.';
      suspend;
      exit;
    end;
  end;

  else if ((StatementID >= 200) and (StatementID < 300)) then
  begin
    s = '';
  end;

  s = '';
  foreach (SelectedNames as sName key NameIdx skip nulls) do
  begin
    s .= sName + CRLF;
  end
  StatementText = s;

  suspend;
end



У тебя в папке, куда эксперт установлен, есть папка Blocks\DefaultBlocks\ вообще? Или ты из архива только экзешник вытаскиваешь?
...
Рейтинг: 0 / 0
24.07.2018, 15:06
    #39678345
Exteris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Text to insert
IBExpertУ тебя в папке, куда эксперт установлен, есть папка Blocks\DefaultBlocks\ вообще? Или ты из архива только экзешник вытаскиваешь?
Дистриб ставил давно, потом только екзешник обновлял. Переустановил, блок появился. Спасибо, то что надо!
...
Рейтинг: 0 / 0
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Text to insert / 7 сообщений из 7, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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