Страница 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
затем вот такой
Результаты приведите здесь.
И еще раз проверьте, что таблица KATORG есть в списке для журнализации.