Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / По разному отрабатывает добавление блобов через IBE/isql / 14 сообщений из 14, страница 1 из 1
06.10.2014, 08:14
    #38767482
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
По разному отрабатывает добавление блобов через IBE/isql
Добрый день
Написал триггер для логирования изменений в таблице,среди прочего есть поле blob. Такая проблема - добавляю данные через IBE - в таблице лога вместо данных blob NULL, добавляю через isql - всё нормально. Кто нибудь с таким сталкивался? И как это лечится?
...
Рейтинг: 0 / 0
06.10.2014, 08:56
    #38767498
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
По разному отрабатывает добавление блобов через IBE/isql
Gallemar,

ты бы пример воспроизводимый привёл что ли. А то мой ХШ не настолько совершенный.
...
Рейтинг: 0 / 0
06.10.2014, 09:14
    #38767504
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
По разному отрабатывает добавление блобов через IBE/isql
Симонов ДенисGallemar,

ты бы пример воспроизводимый привёл что ли. А то мой ХШ не настолько совершенный.
А что такое ХШ? :)
Таблица,подвергаемая логированию:

Код: plaintext
1.
2.
3.
4.
5.
CREATE TABLE TABLE_1 (
    ID        INTEGER,
    NAME      VARCHAR(15),
    SQL_TEXT  BLOB SUB_TYPE 1 SEGMENT SIZE 200
);

Триггер логирования:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
CREATE OR ALTER TRIGGER TABLE_1_AI0 FOR TABLE_1
ACTIVE AFTER INSERT POSITION 0
AS
begin
   insert into mon (pr_name,pr_id,pr_sql,dml) values (new.name,new.id,new.sql_text,'insert');
end
^

SET TERM ; ^

Таблица лога:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
CREATE GENERATOR GEN_MON_ID;

CREATE TABLE MON (
    ID       INTEGER,
    PR_NAME  VARCHAR(15),
    PR_ID    INTEGER,
    PR_SQL   BLOB SUB_TYPE 1 SEGMENT SIZE 200,
    DML      VARCHAR(10)
);
...
Рейтинг: 0 / 0
06.10.2014, 09:40
    #38767515
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
По разному отрабатывает добавление блобов через IBE/isql
Gallemar,

ХШ - хрустальный шар

если я правильно понял не работает логирование именно когда вносишь БЛОБ через таблицу. И это у меня воспроизвелось.

При выполнении вот такого запроса через SQL Editor.

INSERT INTO TABLE_1 (ID, NAME, SQL_TEXT) VALUES (60, 'gdfgdg', 'qqwwwe');

в таблице MON всё нормально
Код: plaintext
1.
ID	PR_NAME	PR_ID	PR_SQL	DML
3	gdfgdg	60	insert

есть подозрения что редактор BLOB в IBE как то хитро работает, что ему удаётся обойти триггер.
...
Рейтинг: 0 / 0
06.10.2014, 09:47
    #38767519
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
По разному отрабатывает добавление блобов через IBE/isql
Симонов Денис,наверно,потому что я вносил данные через грид. Спасибо.
...
Рейтинг: 0 / 0
06.10.2014, 09:50
    #38767523
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
По разному отрабатывает добавление блобов через IBE/isql
Gallemar,

и так что бы развеять сомнения. Я выяснил как это работает. Похоже что БЛОБ IBE записывает через отдельный запрос на UPDATE. Для подтверждения создадим триггер

Код: plsql
1.
2.
3.
4.
5.
6.
CREATE OR ALTER TRIGGER TABLE_1_AU0 FOR TABLE_1
ACTIVE AFTER UPDATE POSITION 0
AS
begin
   insert into mon (pr_name,pr_id,pr_sql,dml) values (new.name,new.id,new.sql_text,'update');
end



теперь вставляем записи в табличку

в MON видим
Код: plaintext
1.
2.
ID	PR_NAME	PR_ID	PR_SQL	     DML
4	aaa	6	             insert
5	aaa	6	fgdfgdfgdfg  update
...
Рейтинг: 0 / 0
06.10.2014, 09:50
    #38767526
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
По разному отрабатывает добавление блобов через IBE/isql
Gallemar,

да именно из за этого
...
Рейтинг: 0 / 0
06.10.2014, 09:56
    #38767528
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
По разному отрабатывает добавление блобов через IBE/isql
Симонов Денис, спасибо ещё раз. Хватунову ссылку скинул на его ветку форума.
...
Рейтинг: 0 / 0
06.10.2014, 16:19
    #38768129
oleg_m
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
По разному отрабатывает добавление блобов через IBE/isql
Gallemarнаверно,потому что я вносил данные через грид.
Зря. При внесении (и правке) данных ч/з грид столько спецэффектов увидеть можно - поседеешь.
Последний раз сам прокололся... подумал тогда "хорошо, что база была тестовая".
...
Рейтинг: 0 / 0
06.10.2014, 16:38
    #38768168
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
По разному отрабатывает добавление блобов через IBE/isql
oleg_m,

Кстати, а со спецэффектами "режима формы" что-то делалось?
Из того, что раздражает:
- в попам меню для блобов нет стандартных Cut/Copy/Paste (только загрузить/выгрузить для файлов).
- установка/снятие галки "NULL" приводит к исчезновению текста в редакторе. Особенно весело, если ты туда что-то долго и нудно вбивал, потом снял галочку и привет.
...
Рейтинг: 0 / 0
06.10.2014, 16:44
    #38768176
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
По разному отрабатывает добавление блобов через IBE/isql
oleg_m> При внесении (и правке) данных ч/з грид столько спецэффектов увидеть можно - поседеешь.
oleg_m> Последний раз сам прокололся... подумал тогда "хорошо, что база была тестовая".

Что конкретно?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
09.10.2014, 14:24
    #38771756
Fr0sT-Brutal
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
По разному отрабатывает добавление блобов через IBE/isql
DarkMaster- в попам меню для блобов нет стандартных Cut/Copy/Paste (только загрузить/выгрузить для файлов).
Видимо, потому, что непонятно, в каком формате его пихать в БО, а универсального бинарного формата в виндах нет. Хотя (Copy|Paste) as Text вполне можно сделать.
...
Рейтинг: 0 / 0
09.10.2014, 15:03
    #38771828
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
По разному отрабатывает добавление блобов через IBE/isql
Fr0sT-BrutalDarkMaster- в попам меню для блобов нет стандартных Cut/Copy/Paste (только загрузить/выгрузить для файлов).
Видимо, потому, что непонятно, в каком формате его пихать в БО, а универсального бинарного формата в виндах нет. Хотя (Copy|Paste) as Text вполне можно сделать.

В IBE в режиме формы блобы - Memo-поля. Т.е. я туда могу вбить текст. Я могу сделать Ctrl+C/Ctrl+V. Но не могу позвать попап меню с этими самыми Ctrl+C/Ctrl+V ;(
...
Рейтинг: 0 / 0
09.10.2014, 19:45
    #38772313
Fr0sT-Brutal
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
По разному отрабатывает добавление блобов через IBE/isql
DarkMasterВ IBE в режиме формы блобы - Memo-поля. Т.е. я туда могу вбить текст. Я могу сделать Ctrl+C/Ctrl+V. Но не могу позвать попап меню с этими самыми Ctrl+C/Ctrl+V ;(
В таком случае действительно упущение.
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / По разному отрабатывает добавление блобов через IBE/isql / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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