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

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

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


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