Memo-поле таблицы x$journal

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
Robis
Посетитель
Сообщения: 37
Зарегистрирован: 13 дек 2010, 16:55

Memo-поле таблицы x$journal

Сообщение Robis »

Подскажите, где живёт этот зверь.

Стандартное размещение xx$memo где m#code = код таблицы, m#nrec = нрек записи...
Но в xx$memo нету записей с m#code = 15 (номер x$journal)

P.S. MSSQL
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Re: Memo-поле таблицы x$journal

Сообщение edward_K »

1. C точки зрения галактики мемо поле живет в x$journal
2. На MSSQL и ORACLE живет в базе в таблицах на J$код_таблицы. Структура такая же как у главной + 3 поля.
Robis
Посетитель
Сообщения: 37
Зарегистрирован: 13 дек 2010, 16:55

Re: Memo-поле таблицы x$journal

Сообщение Robis »

Туда я вчера глядел... там добавляется 2 поля...
+ J#Nrec: binary(8)
+ J#Flag: tinyint

В частности таблица TuneVal -> J$30502... нет там поля image
Den
Местный житель
Сообщения: 1844
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

Re: Memo-поле таблицы x$journal

Сообщение Den »

Robis писал(а):Туда я вчера глядел...
И каких данных Вы не увидели в j$30502(я о тех данных которые Вы конкретно хотите получить...) , которые хотите найти в allmemo ?
Robis
Посетитель
Сообщения: 37
Зарегистрирован: 13 дек 2010, 16:55

Re: Memo-поле таблицы x$journal

Сообщение Robis »

Я делаю копию журнала в другую таблицу. В мемо поле журнала хранятся старые/новые значения. Есть готовые, удобные функции, с помощью которых получаются эти значения из мемо (GetNewFieldValueFromJournal, GetOldFieldValueFromJournal). Наконец, есть уже готовый код, который не хочется переделывать, так же не хочется плодить хранимки для доступа к таблицам J$XXXX. И напоследок... есть банальный интерес где же хранится мемо для этой таблицы.
Den
Местный житель
Сообщения: 1844
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

Re: Memo-поле таблицы x$journal

Сообщение Den »

Непосредственно журнальные данные по изменению таблиц, в варианте MSSQL , хранятся в схемах j$<код таблицы по словарю> (как уже заметили Выше)- если Вас интересует структура хранения этих данных в самом скульсервере.Т.е. в таблице мемополей прикладной галактической они не хранятся.
запустите профайлера и попробуйте ткнуться в журнале в саппорте на какую нить запись и внутри нее педальку нажать просмотр записи - теоретически должны увидеть какой запрос присылает на выполенние галактический драйвер скулю....т.е. даже 100% увидите какой )
Robis
Посетитель
Сообщения: 37
Зарегистрирован: 13 дек 2010, 16:55

Re: Memo-поле таблицы x$journal

Сообщение Robis »

Вы, прежде чем отвечать, запустили бы профайлер и поглядели что там. Это целый квест - найти данное мемо.
Den
Местный житель
Сообщения: 1844
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

Re: Memo-поле таблицы x$journal

Сообщение Den »

Запустил посмотрел, ткнувишь на первую под руку попавшуюся запись журнала в саппорте....(изменение spsopr)

Видимо вот это код запроса нужных данных :

declare @p1 int
set @p1=180150043
declare @p3 int
set @p3=4
declare @p4 int
set @p4=1
declare @p5 int
set @p5=-1
exec sp_cursoropen @p1 output,N'SELECT F$NREC,F$ATL_LASTDATE,F$ATL_LASTTIME,F$ATL_LASTUSER,F$ATL_ORIGINOFFICE,F$ATL_OWNER,F$ATL_BRANCH,F$FILIALNO,F$CSPSOPR,F$NPP,F$PRMC,F$CMCUSL,F$COTPED,F$CALTED,F$CPARTY,F$CVAL,F$CPRICELIST,F$KOL,F$KOLOPL,F$OSTKOL,F$PRICE,F$PROCUB,F$CPERSONS,F$MANUALTAX,F$CGRNAL,F$CCELLVAL,F$CTRANSP,F$NVAGON,F$NKVIT,F$NSERTIF,F$SUMAVT,F$CVALAVT,F$CMASED,F$CMASVID,F$NETTO,F$MTARA,F$CRESOTGR,F$CSPDOCS,F$CSOPR,F$DSOPR,F$DOPRTTN,F$VIDSOPR,F$KOL2,F$VPRICE,F$KOLFACT,F$KOLFACT2,F$KOLNORMA,F$OILPLOT,F$OILTEMPER,F$CSPORDER,F$PROCNAC,F$CSPSTEP,F$SUMNDS,F$SUMVNDS,F$RPRICE,F$RVPRICE,F$CSPNZAKAZ,F$CSPSCHF,F$WADOCSP,F$CADOCSP,F$CZAKVOL,F$KOLGRM,F$COTPEDGRM,F$CNMOVECELL,F$COWNER,F$PRVOZ,F$KOLPOV,F$CGPSOPR,F$KOLDOP,F$CUKS,F$WMCPROP,F$PRICEN,F$VPRICEN,F$MANUALNALUCH,F$CPODR,F$CMOL,F$LASTDATE,F$LASTTIME,F$RESERVE FROM J$1110(FASTFIRSTROW) WHERE J#NRec=@P1 ORDER BY J#NRec,J#Flag',@p3 output,@p4 output,@p5 output,N'@P1 binary(8)',0x80010000015520A7
select @p1, @p3, @p4, @p5


если его обыграть в MSSQL студио
SELECT F$NREC,F$ATL_LASTDATE,F$ATL_LASTTIME
,F$ATL_LASTUSER,F$ATL_ORIGINOFFICE,F$ATL_OWNER,F$ATL_BRANCH,
F$FILIALNO,F$CSPSOPR,F$NPP,F$PRMC,F$CMCUSL,F$COTPED,F$CALTED,
F$CPARTY,F$CVAL,F$CPRICELIST,F$KOL,F$KOLOPL,F$OSTKOL,F$PRICE,
F$PROCUB,F$CPERSONS,F$MANUALTAX,F$CGRNAL,F$CCELLVAL,F$CTRANSP,
F$NVAGON,F$NKVIT,F$NSERTIF,F$SUMAVT,F$CVALAVT,F$CMASED,F$CMASVID,
F$NETTO,F$MTARA,F$CRESOTGR,F$CSPDOCS,F$CSOPR,F$DSOPR,F$DOPRTTN,
F$VIDSOPR,F$KOL2,F$VPRICE,F$KOLFACT,F$KOLFACT2,F$KOLNORMA,F$OILPLOT
,F$OILTEMPER,F$CSPORDER,F$PROCNAC,F$CSPSTEP,F$SUMNDS,F$SUMVNDS,
F$RPRICE,F$RVPRICE,F$CSPNZAKAZ,F$CSPSCHF,F$WADOCSP,F$CADOCSP,F$CZAKVOL
,F$KOLGRM,F$COTPEDGRM,F$CNMOVECELL,F$COWNER,F$PRVOZ,F$KOLPOV,F$CGPSOPR
,F$KOLDOP,F$CUKS,F$WMCPROP,F$PRICEN,F$VPRICEN,F$MANUALNALUCH,F$CPODR
,F$CMOL,F$LASTDATE,F$LASTTIME,F$RESERVE
FROM J$1110(FASTFIRSTROW) WHERE J#NRec=0x80010000015520A7 ORDER BY J#NRec,J#Flag

то возвращается 2 записи - одна "до изменения" другая "после"
Robis
Посетитель
Сообщения: 37
Зарегистрирован: 13 дек 2010, 16:55

Re: Memo-поле таблицы x$journal

Сообщение Robis »

Толи я непонятно выражаюсь, толи меня не понимают. Этот способ понятен, но для него придётся модифицировать код и писать хранимки. Это раз.

И два. Он так и не объяснил где находится в базе мемо поле таблицы x$journal. А именно о нём мы и говорим, в чём можно удостовериться, взглянув на название темы.
Den
Местный житель
Сообщения: 1844
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

Re: Memo-поле таблицы x$journal

Сообщение Den »

Насчет второго.... еще раз попробую настоять что данные для таблицы journal не хранятся по привычной принятой практике в allmemo. То что вы вы видите в саппорте в журнализации при просмотре записи - это не выборка из какой любой таблицы галактики с полем типа LVAR. это выборка из j$30502 (в вашем случае). Оттуда же гребут данные GetNewFieldValueFromJournal, GetOldFieldValueFromJournal
Robis
Посетитель
Сообщения: 37
Зарегистрирован: 13 дек 2010, 16:55

Re: Memo-поле таблицы x$journal

Сообщение Robis »

Вот теперь Ваша правда, спасибо.
Ответить