Страница 1 из 2

Проблема с журнализацией?

Добавлено: 06 сен 2005, 17:40
Pavel555
Не создаются записи журнализации,до этого проверял структуру базы с исправлением,исправились ошибки GetJournalModeForTable и InsertMemoValue,после этого нет журнализации,она включена но записи не появляются,в чем грабли?

Добавлено: 06 сен 2005, 17:51
WiRuc
Смотри профайлером, что происходит в базе

Добавлено: 06 сен 2005, 18:02
Pavel555
А по конкретнее,для чайников?Где и что посмотреть?

Добавлено: 07 сен 2005, 11:21
edward_K
проверте TABLESFORJOURNAL может там косяк
можно попробовать удалить одну таблу из списка и добавить - пойдет ли журнализация?
пролечить можно так
delete all TABLESFORJOURNAL where (( TABLESFORJOURNAL.TABLECODE == x$files.xf$code )) and not isvalidall(tnx$files) ;
update TABLESFORJOURNAL set JOURACT:=14 ;
delete all X$REGISTERTABLES ;
insert into X$REGISTERTABLES select
TABLESFORJOURNAL.TABLECODE,//TABLECODE
0, //FORCORPO
14,//FORPERSONS
0 //FORREPAIR
from TABLESFORJOURNAL ;

Добавлено: 07 сен 2005, 12:10
Pavel555
Галактика 7.11,в таблице нет поля Jouract? :-?

Добавлено: 07 сен 2005, 13:11
edward_K
:)
это под 712

Добавлено: 07 сен 2005, 13:19
Pavel555
А как это в 7.11 выглядит?Чего удалять и апдейтить?

Добавлено: 08 сен 2005, 08:17
hope
У нас после перехода тоже в журнал ничего не попадало. Надо было удалить таблицы из списка журналирования, а потом снова добавить. И еще, в журнал начнет писать только после того, как вы сначала настроите журнализацию, а потом зайдете в Галактику.

Добавлено: 08 сен 2005, 10:35
Pavel555
Удалять пробовал,не помогло.Что еще посмотреть?

Добавлено: 08 сен 2005, 10:41
Pavel555
при включении журнализации,все пользователи должны выйти из системы?

Добавлено: 08 сен 2005, 11:29
WiRuc
Pavel555 писал(а):при включении журнализации,все пользователи должны выйти из системы?
Не обязательно.
Откройте с помощью Enterprise Manager из поставки MSSQL процедуры GetJournalModeForTable и InsertMemoValue и приведите их тескт здесь.

Добавлено: 08 сен 2005, 15:00
Pavel555
Вот текст.CREATE PROCEDURE GetJournalModeForTable(@TableCode INT,@Mode TINYINT OUTPUT) AS
DECLARE @ForCorpo TINYINT,@ForPersons TINYINT,@ForRepair TINYINT
SELECT @ForCorpo=ForCorpo,@ForPersons=ForPersons,@ForRepair=ForRepair
FROM X$RegisterTables WHERE TableCode=@TableCode
IF (@ForCorpo IS NULL) OR (@ForCorpo=0 AND (@ForPersons=0 OR @ForPersons=1) AND @ForRepair=0)
SELECT @Mode=0
ELSE
SELECT @Mode=1
RETURN 0
GO

CREATE PROCEDURE InsertMemoValue (@MNRec BINARY( '8'), @MCode INT, @MFlag TINYINT, @MData IMAGE) AS
-- Check privileges here
INSERT INTO XX$Memo(M#NRec, M#Code, M#Flag, M#Data) VALUES(@MNRec, @MCode, @MFlag, @MData)
RETURN 0
GO

поставил '8' потому как вместо нее смайл,в тексте просто восьмерка без кавычек

Добавлено: 08 сен 2005, 19:37
WiRuc
Добавьте таблицу KATORG в список таблиц для журнализации.
Запустите Query Analyzer из поставки MSSQL, подключитесь к вашей БД под пользователем Галактики. В окне выполните запрос

Код: Выделить всё

DECLARE @mode tinyint
EXEC GetJournalModeForTable 1418, @mode OUTPUT
SELECT @mode
Результаты приведите здесь.
Если результат будет равен 1, то придется учиться пользоваться профайлером:)

Добавлено: 09 сен 2005, 10:43
Pavel555
Результат=0,что дальше? :-?

Добавлено: 09 сен 2005, 11:29
WiRuc
Pavel555 писал(а):Результат=0,что дальше? :-?
:???:

Давайте еще выполним в QA (Query Analyzer) вот такой запрос:

Код: Выделить всё

SELECT * FROM X$RegisterTables WHERE TableCode=1418 
затем вот такой

Код: Выделить всё

SELECT count(*) FROM X$RegisterTables 
Результаты приведите здесь.
И еще раз проверьте, что таблица KATORG есть в списке для журнализации.