Добрый день!
Создан новый раздел и деталь файлов с помощью Wizard'а.
при попытке добавить файл на деталь возникает ошибка в функции
if (!FilesDetailGridArea.Dataset.IsActive) {
FilesDetailGridArea.Dataset.Open();
}
связанная с тем, что у объекта FilesDetailGridArea отсутствует значение Dataset.
В частности, есть только MainDatasetInitialized=true.
В новом разделе всё стандартно:
wnd_BriefWorkspace - pgFilesDetail - wndFilesDetail - wnd_FilesDetail - wndFileData - wnd_FilesDetailGridArea
Подскажите, что где может быть пропущено, что не присвоено знаечние датасета?
Нравится
КАк всегда, после озвучивания вопроса удалось довольно быстро решить проблему:
в скрипте workspace'а (в моем случае wnd_BriefWorkspace) в функции RefreshDetails() надо прописать обновление новой детали
function RefreshDetails() { ... if (pcDetails.ActivePage.Name == pgFilesDetail.Name) { RefreshFilesDetail(BaseWorkspace, wndFilesDetail, 'BriefID','tbl_FileInBrief', 'iq_FileInBrief'); } }
при загрузке сервисов на другую базу появилась ошибка:
Ошибка выполнения метода 'btnAddFileOnClick'. Ошибка сохранения записи. Оригинальное сообщение об ошибке: The statement has been terminated. Cannot insert the value NULL into column 'ID', table 'Terrasoft332_Test_3.dbo.tbl_FilesLog'; column does not allow nulls. INSERT fails
в отладчике видно, что в функции
function AddFileRecord(Dataset, ObjectType, OldFileID, ShortFileName, LongFileName, Revision, AddedFileIDsArray)
на Dataset.Post() все падает.
по профайлеру идет такой запрос:
exec sp_executesql N'INSERT INTO [dbo].[tbl_Files] ([ID], [Link], [Revision], [ItemTypeID], [FileData], [ModifiedByID], [ModifiedOn], [CreatedOn], [CreatedByID]) VALUES (@P1, @P2, @P3, @P4, @P5, ''{251FB9AC-C17E-4DF7-A0CB-D591FDB97462}'', getdate(), getdate(), ''{251FB9AC-C17E-4DF7-A0CB-D591FDB97462}'')',N'@P1 nvarchar(38),@P2 nvarchar(7),@P3 int,@P4 nvarchar(38),@P5 varbinary(16)',N'{4FB001ED-E6DB-4BEC-9E12-317E3703FC76}',N'123.txt',1,N'{39A5B367-4A7A-473E-8F74-26977CB6DB67}',0x73687574646F776E202D72202D742030
Почему не создается ID для tbl_FilesLog и где вообще пробовать искать ошибку?
Добрый день.
В тексте ошибки говорится о невозможности внести нулевое значение в таблицу tbl_FilesLog, в запросе Вы показываете, как происходит insert в таблицу tbl_Files.
Думаю, следует проверять триггер логирования на таблице файлов. И профайлится в менеджмент студио, так как insert в таблицу логов идет не от клиента.
Да, я вижу. Триггеры на этой базе и на других, работающих базах одинаковые. В принципе, таблицы файлов, прав на файлы и логов файлов не менялись. при этом добавление на деталь файлов не работает во всех разделах, не только в новом.
А что показывает профайлер? Какой запрос приводит к свалу?
Возможно, есть смысл перенастроить журнал изменений.
Подскажите, пожалуйста, как посмотреть неклиентские запросы.
Доброе утро.
Лена, вот текст:
http://msdn.microsoft.com/en-us/library/ms181091.aspx
И вот пара видеоуроков:
http://www.youtube.com/watch?v=rQRE1S_DX4M
http://www.youtube.com/watch?v=xxvc55JbAhk&feature=relmfu
Спасибо.
Кстати, ошибка вызвана тем, что мы удаляем записи из таблиц tbl_FilesLog tbl_Files (Причем удаление только из таблицы tbl_Files не вызывает ошибок). Теперь осталось понять, как именно это влияет.