powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / INSERT нескольких записей
14 сообщений из 14, страница 1 из 1
INSERT нескольких записей
    #39753891
Hadroran
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет.
Подскажите что не так? Следующий код ругается на запятую между скобками в значениях
Код: plsql
1.
2.
3.
4.
INSERT INTO
ITEMSOPERATION (ID_IORD, OPERVALUE)
VALUES
(1453, 0), (1456, 0)
...
Рейтинг: 0 / 0
INSERT нескольких записей
    #39753892
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hadroran,

По очереди.
Можешь еще несколько инсертов в execute block засунуть.
...
Рейтинг: 0 / 0
INSERT нескольких записей
    #39753895
Hadroran
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
YuRock,
И давно ли так?
...
Рейтинг: 0 / 0
INSERT нескольких записей
    #39753896
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HadroranПодскажите что не так?

Ты попутал сервера, это запрос для MySQL.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
INSERT нескольких записей
    #39753900
Hadroran
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,

Семён Семёныч.....
...
Рейтинг: 0 / 0
INSERT нескольких записей
    #39753959
Hadroran
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите, а как реализовать часть кода

Код: pascal
1.
s_tmp := copy(s_str, 1, pos(',', s_str) - 1)



для вставки в execute block
...
Рейтинг: 0 / 0
INSERT нескольких записей
    #39753963
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HadroranПодскажите, а как реализовать часть кода

Код: pascal
1.
s_tmp := copy(s_str, 1, pos(',', s_str) - 1)




для вставки в execute block
POSITION
SUBSTRING
google
...
Рейтинг: 0 / 0
INSERT нескольких записей
    #39753965
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hadroranкак реализовать часть кода для вставки в execute block

Не надо этот код вставлять в execute block. Используй параметры.

PS: И ты ещё не сказал назачем тебе вообще понадобилось вставлять несколько записей
всенепременно одним запросом.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
INSERT нескольких записей
    #39753972
Hadroran
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovHadroranкак реализовать часть кода для вставки в execute block

Не надо этот код вставлять в execute block. Используй параметры.

PS: И ты ещё не сказал назачем тебе вообще понадобилось вставлять несколько записей
всенепременно одним запросом.


Это хочу реализовать архивирование действий оператора над записями. Соответственно, если оператор сделал групповое удаление записей, надо записать в таблицу все id записей и код операции над ними.
...
Рейтинг: 0 / 0
INSERT нескольких записей
    #39753977
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HadroranСоответственно, если оператор сделал групповое удаление записей, надо записать в таблицу все id записей и код операцииА в триггерах нельзя это сделать?
...
Рейтинг: 0 / 0
INSERT нескольких записей
    #39753982
Hadroran
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
YuRockА в триггерах нельзя это сделать?

А сейчас и на триггерах попробуем.
А в execute block может кому понадобится

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
EXECUTE block (sIORD VARCHAR(255) = :sIORD)
AS
DECLARE variable s_tmp1 VARCHAR(255);
DECLARE variable s_tmp2 VARCHAR(255);
BEGIN
  s_tmp1 = :sIORD;
  while (s_tmp1 <> '') do
    begin
      if (POSITION (',' in s_tmp1) = 0) then
        begin
          s_tmp2 = :s_tmp1;
          s_tmp1 = '';
        end
      else
        s_tmp2 = SUBSTRING(s_tmp1 from 1 for POSITION (',' in s_tmp1) - 1);

      insert into ITEMSOPERATION (ID_IORD, OPERVALUE) values (:s_tmp2, 0);

      s_tmp1 = SUBSTRING(s_tmp1 from POSITION (',' in s_tmp1) + 1 for CHAR_LENGTH(s_tmp1));
    end
END
...
Рейтинг: 0 / 0
INSERT нескольких записей
    #39754023
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HadroranА в execute block может кому понадобится

Очень даже понадобится. В качестве примера "как делать не надо".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
INSERT нескольких записей
    #39754609
Hadroran
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,

А шо так? Тогда справедливый вопрос - а как надо?

Код адаптирован под процедуру и используется. Что еще надо для счастия в Новом Году :)

ВСЕХ С НАСТУПАЮЩИМИ ПРАЗДНИКАМИ!!!! УРА!
...
Рейтинг: 0 / 0
INSERT нескольких записей
    #39761248
Hadroran
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovHadroranА в execute block может кому понадобится

Очень даже понадобится. В качестве примера "как делать не надо".


Вот теперь, спустя некоторое время соглашусь. "Так делать не надо"! Снимаю шляпу.
Переделал данную задачку через триггеры. Гораздо Эффективнее оказалось и куча лишнего кода и проги ушло.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / INSERT нескольких записей
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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